home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Languguage OS 2
/
Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO
/
gnu
/
jargon.lha
/
jargon-upd
next >
Wrap
Text File
|
1993-05-11
|
346KB
|
6,500 lines
This is an automatically generated difference report including new, changed
and deleted entries from the _The_New_Hacker's_Dictionary_ (Jargon File
release 2.9.6) up to the present. Trivial tweaks such as typo fixes,
and additions to the cross-reference structure that don't change the
actual content of the entry, have been omitted.
If an entry was changed in multiple versions, it is listed under
the *earliest* version in which it occurs. For reasons too painful
to explain, changed entries are very occasionally listed twice.
This report was generated Tue May 11 23:17:02 EDT 1993
**************** New entries in 2.9.7 *****************
:annoybot: /*-noy-bot/ [IRC] n. See {robot}.
:blargh: /blarg/ [MIT] n. The opposite of {ping}, sense 5; an
exclamation indicating that one has absorbed or is emitting a
quantum of unhappiness. Less common than {ping}.
:BOF: /B-O-F/ or /bof/ n. Abbreviation for the phrase "Birds
Of a Feather" (flocking together), an informal discussion group
and/or bull session scheduled on a conference program. It is not
clear where or when this term originated, but it is now associated
with the USENIX conferences for UNIX techies and was already
established there by 1984. It was used earlier than that at DECUS
conferences and is reported to have been common at SHARE meetings
as far back as the early 1960s.
:break-even point: n. in the process of implementing a new computer
language, the point at which the language is sufficiently effective
that one can implement the language in itself. That is, for a new
language called, hypothetically, FOOGOL, one has reached break-even
when one can write a demonstration compiler for FOOGOL in FOOGOL,
discard the original implementation language, and thereafter use
working versions of FOOGOL to develop newer ones. This is an
important milestone; see {MFTL}.
[Since this entry was first written, several correspondents have
reported that there actually was a compiler for a tiny Algol-like
language called Foogol floating around on various {vaxen} in the
early and mid-1980s. The above example may not, after all, be
hypothetical. -- ESR]
:channel: [IRC] n. The basic unit of discussion on {IRC}. Once
one joins a channel, everything one types is read by others on that
channel. Channels can either be named with numbers or with strings
that begin with a `#' sign and can have topic descriptions (which
are generally irrelevant to the actual subject of discussion).
Some notable channels are `#initgame', `#hottub', and
`#report'. At times of international crisis, `#report'
has hundreds of members, some of whom take turns listening to
various news services and typing in summaries of the news, or in
some cases, giving first-hand accounts of the action (e.g., Scud
missile attacks in Tel Aviv during the Gulf War in 1991).
:channel hopping: [IRC, GEnie] n. To rapidly switch channels on
{IRC}, or a GEnie chat board, just as a social butterfly might hop
from one group to another at a party. This term may derive from the TV
watcher's idiom, `channel surfing'.
:channel op: /chan'l op/ [IRC] n. Someone who is endowed with
privileges on a particular {IRC} channel; commonly abbreviated
`chanop' or `CHOP'. These privileges include the right to
{kick} users, to change various status bits, and to make others
into CHOPs.
:chanop: /chan'-op/ [IRC] n. See {channel op}.
:CHOP: /chop/ [IRC] n. See {channel op}.
:dark-side hacker: n. A criminal or malicious hacker; a
{cracker}. From George Lucas's Darth Vader, "seduced by the
dark side of the Force". The implication that hackers form a
sort of elite of technological Jedi Knights is intended. Oppose
{samurai}.
:Duff's device: n. The most dramatic use yet seen of {fall
through} in C, invented by Tom Duff when he was at Lucasfilm.
Trying to {bum} all the instructions he could out of an inner
loop that copied data serially onto an output port, he decided to
{unroll} it. He then realized that the unrolled version could
be implemented by *interlacing* the structures of a switch and
a loop:
register n = (count + 7) / 8; /* count > 0 assumed */
switch (count % 8)
{
case 0: do { *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while (--n > 0);
}
Shocking though it appears to all who encounter it for the first
time, the device is actually perfectly valid, legal C. C's default
{fall through} in case statements has long been its most
controversial single feature; Duff observed that "This code forms
some sort of argument in that debate, but I'm not sure whether it's
for or against."
[For maximal obscurity, the outermost pair of braces above could be
actually be removed --- GLS]
:dumpster diving: /dump'-ster di:'-ving/ n. 1. The practice of
sifting refuse from an office or technical installation to extract
confidential data, especially security-compromising information
(`dumpster' is an Americanism for what is elsewhere called a
`skip'). Back in AT&T's monopoly days, before paper shredders
became common office equipment, phone phreaks (see {phreaking})
used to organize regular dumpster runs against phone company plants
and offices. Discarded and damaged copies of AT&T internal manuals
taught them much. The technique is still rumored to be a favorite
of crackers operating against careless targets. 2. The practice of
raiding the dumpsters behind buildings where producers and/or
consumers of high-tech equipment are located, with the expectation
(usually justified) of finding discarded but still-valuable
equipment to be nursed back to health in some hacker's den.
Experienced dumpster-divers not infrequently accumulate basements
full of moldering (but still potentially useful) {cruft}.
:finn: [IRC] v. To pull rank on somebody based on the amount of
time one has spent on {IRC}. The term derives from the fact
that IRC was originally written in Finland in 1987.
:firehose syndrome: n. In mainstream folklore it is observed that
trying to drink from a firehose can be a good way to rip your lips
off. On computer networks, the absence or failure of flow control
mechanisms can lead to situations in which the sending system
sprays a massive flood of packets at an unfortunate receiving
system, more than it can handle. Compare {overrun}, {buffer
overflow}.
:flood: [IRC] v. To dump large amounts of text onto an {IRC}
channel. This is especially rude when the text is uninteresting
and the other users are trying to carry on a serious conversation.
:FM: n. *Not* `Frequency Modulation' but rather an
abbreviation for `Fucking Manual', the back-formation from
{RTFM}. Used to refer to the manual itself in the {RTFM}.
"Have you seen the Networking FM lately?"
:gweep: /gweep/ [WPI] 1. v. To {hack}, usually at night. At
WPI, from 1977 onwards, this often indicated that the speaker could
be found at the College Computing Center punching cards or crashing
the {PDP-10} or, later, the DEC-20. The term has survived the
demise of those technologies, however, and is still alive in late
1991. "I'm going to go gweep for a while. See you in the
morning" "I gweep from 8 PM till 3 AM during the week."
2. n. One who habitually gweeps in sense 1; a {hacker}. "He's
a hard-core gweep, mumbles code in his sleep."
:HHOK: See {ha ha only serious}.
:HHOS: See {ha ha only serious}.
:hing: // [IRC] n. Fortuitous typo for `hint', now in wide
intentional use among players of {initgame}. Compare
{newsfroup}, {filk}.
:ICBM address: n. (Also `missile address') The form used to
register a site with the USENET mapping project includes a blank
for longitude and latitude, preferably to seconds-of-arc accuracy.
This is actually used for generating geographically-correct maps of
USENET links on a plotter; however, it has become traditional to
refer to this as one's `ICBM address' or `missile address', and
many people include it in their {sig block} with that name.
:initgame: /in-it'gaym/ [IRC] n. An {IRC} version of the
venerable trivia game "20 questions", in which one user changes
his {nick} to the initials of a famous person or other named
entity, and the others on the channel ask yes or no questions, with
the one to guess the person getting to be "it" next. As a
courtesy, the one picking the initials starts by providing a
4-letter hint of the form sex, nationality, life-status,
reality-status. For example, MAAR means "Male, American, Alive,
Real" (as opposed to "fictional"). Initgame can be surprisingly
addictive. See also {hing}.
:IRC: /I-R-C/ [Internet Relay Chat] n. A worldwide "party
line" network that allows one to converse with others in real
time. IRC is structured as a network of Internet servers, each of
which accepts connections from client programs, one per user. The
IRC community and the {USENET} and {MUD} communities overlap
to some extent, including both hackers and regular folks who have
discovered the wonders of computer networks. Some USENET jargon
has been adopted on IRC, as have some conventions such as
{emoticon}s. There is also a vigorous native jargon,
represented in this lexicon by entries marked `[IRC]'. See also
{talk mode}.
:jupiter: [IRC] vt. To kill an {IRC} {robot} or user and
then take its place by adopting its {nick} so that it cannot
reconnect. Named after a particular IRC user who did this to
NickServ, the robot in charge of preventing people from
inadvertently using a nick claimed by another user.
:kick: [IRC] v. To cause somebody to be removed from a {IRC}
channel, an option only available to {CHOP}s. This is an
extreme measure, often used to combat extreme {flamage} or
{flood}ing, but sometimes used at the chop's whim. Compare
{gun}.
:maximum Maytag mode: What a {washing machine} or, by extension,
any hard disk is in when it's being used so heavily that it's
shaking like an old Maytag with an unbalanced load. If prolonged
for any length of time, can lead to disks becoming {walking
drives}.
:missile address: n. See {ICBM address}.
:neats vs. scruffies: n. The label used to refer to one of the
continuing {holy wars} in AI research. This conflict tangles
together two separate issues. One is the relationship between
human reasoning and AI; `neats' tend to try to build systems
that `reason' in some way identifiably similar to the way humans
report themselves as doing, while `scruffies' profess not to
care whether an algorithm resembles human reasoning in the least as
long as it works. More importantly, neats tend to believe that
logic is king, while scruffies favor looser, more ad-hoc methods
driven by empirical knowledge. To a neat, scruffy methods appear
promiscuous and successful only by accident; to a scruffy, neat
methods appear to be hung up on formalism and irrelevant to the
hard-to-capture `common sense' of living intelligences.
:netburp: [IRC] n. When {netlag} gets really bad, and delays
between servers exceed a certain threshhold, the {IRC} network
effectively becomes partitioned for a period of time, and large
numbers of people seem to be signing off at the same time and then
signing back on again when things get better. An instance of this
is called a `netburp' (or, sometimes, {netsplit}).
:netdead: [IRC] n. The state of someone who signs off {IRC},
perhaps during a {netburp}, and doesn't sign back on until
later. In the interim, he is "dead to the net".
:netlag: [IRC, MUD] n. A condition that occurs when the delays in
the {IRC} network or on a {MUD} become severe enough that
servers briefly lose and then reestablish contact, causing messages
to be delivered in bursts, often with delays of up to a minute.
(Note that this term has nothing to do with mainstream "jet lag",
a condition which hackers tend not to be much bothered by.)
:nick: [IRC] n. Short for nickname. On {IRC}, every user must
pick a nick, which is sometimes the same as the user's real name or
login name, but is often more fanciful.
:op: /op/ n. 1 [IRC] Someone who is endowed with privileges on
{IRC}, not limited to a particular channel. These are generally
people who are in charge of the IRC server at their particular
site. Sometimes used interchangeably with {CHOP}. Compare
{sysop}. 2. In England and Ireland, common verbal abbreviation
for `operator', as in system operator. Less common in the U.S.,
where {sysop} seems to be preferred.
:overflow pdl: [MIT] n. The place where you put things when your
{pdl} is full. If you don't have one and too many things get
pushed, you forget something. The overflow pdl for a person's
memory might be a memo pad. This usage inspired the following
doggerel:
Hey, diddle, diddle
The overflow pdl
To get a little more stack;
If that's not enough
Then you lose it all,
And have to pop all the way back.
--The Great Quux
The term {pdl} seems to be primarily an MITism; outside MIT this
term is replaced by `overflow {stack}'.
:programming fluid: n. 1. Coffee. 2. Cola. 3. Any caffeinacious
stimulant. Many hackers consider these essential for those
all-night hacking runs. See {unleaded}, {wirewater}.
:robot: [IRC, MUD] n. An {IRC} or {MUD} user who is actually
a program. On IRC, typically the robot provides some useful
service. Examples are NickServ, which tries to prevent random
users from adopting {nick}s already claimed by others, and
MsgServ, which allows one to send asynchronous messages to be
delivered when the recipient signs on. Also common are
"annoybots", such as KissServ, which perform no useful function
except to send cute messages to other people. Service robots are
less common on MUDs; but some others, such as the `Julia' robot
active in 1990--91, have been remarkably impressive Turing-test
experiments, able to pass as human for as long as ten or fifteen
minutes of conversation.
:samurai: n. A hacker who hires out for legal cracking jobs,
snooping for factions in corporate political fights, lawyers
pursuing privacy-rights and First Amendment cases, and other
parties with legitimate reasons to need an electronic locksmith.
In 1991, mainstream media reported the existence of a loose-knit
culture of samurai that meets electronically on BBS systems, mostly
bright teenagers with personal micros; they have modeled
themselves explicitly on the historical samurai of Japan and on the
"net cowboys" of William Gibson's {cyberpunk} novels. Those
interviewed claim to adhere to a rigid ethic of loyalty to their
employers and to disdain the vandalism and theft practiced by
criminal crackers as beneath them and contrary to the hacker ethic;
some quote Miyamoto Musashi's `Book of Five Rings', a classic
of historical samurai doctrine, in support of these principles.
See also {Stupids}, {social engineering}, {cracker},
{hacker ethic, the}, and {dark-side hacker}.
:social engineering: n. Term used among {cracker}s and
{samurai} for cracking techniques that rely on weaknesses in
{wetware} rather than software; the aim is to trick people into
revealing passwords or other information that compromises a target
system's security. Classic scams include phoning up a mark who has
the required information and posing as a field service tech or a
fellow employee with an urgent access problem. See also the
{tiger team} story in the {patch} entry.
:Stupids: n. Term used by {samurai} for the {suit}s who
employ them; succinctly expresses an attitude at least as common,
though usually better disguised, among other subcultures of
hackers. There may be intended reference here to an SF story
originally published in 1952 but much anthologized since, Mark
Clifton's `Star, Bright'. In it, a super-genius child
classifies humans into a very few `Brights' like herself, a huge
majority of `Stupids', and a minority of `Tweens', the merely
ordinary geniuses.
:Turing tar-pit: n. 1. A place where anything is possible but
nothing of interest is practical. Alan Turing helped lay the
foundations of computer science by showing that all machines and
languages capable of expressing a certain very primitive set of
operations are logically equivalent in the kinds of computations
they can carry out, and in principle have capabilities that differ
only in speed from those of the most powerful and elegantly
designed computers. However, no machine or language exactly
matching Turing's primitive set has ever been built (other than
possibly as a classroom exercise), because it would be horribly
slow and far too painful to use. A `Turing tar-pit' is any
computer language or other tool that shares this property. That
is, it's theoretically universal --- but in practice, the harder
you struggle to get any real work done, the deeper its inadequacies
suck you in. Compare {bondage-and-discipline language}. 2. The
perennial {holy wars} over whether language A or B is the "most
powerful".
:tweeter: [University of Waterloo] n. Syn. {perf}, {chad}
(sense 1). This term (like {woofer}) has been in use at
Waterloo since 1972 but is elsewhere unknown. In audio jargon, the
word refers to the treble speaker(s) on a hi-fi.
:twilight zone: [IRC] n. Notionally, the area of cyberspace where {IRC}
operators live. An {op} is said to have a "connection to the
twilight zone".
:unroll: v. To repeat the body of a loop several times in succession.
This optimization technique reduces the number of times the
loop-termination test has to be executed. But it only works if
the number of iterations desired is a multiple of the number of
repetitions of the body. Something has to be done to take care
of any leftover iterations --- such as {Duff's device}.
:woofer: [University of Waterloo] n. Some varieties of wide paper
for printers have a perforation 8.5 inches from the left margin
that allows the excess on the right-hand side to be torn off when
the print format is 80 columns or less wide. The right-hand excess
may be called `woofer'. This term (like {tweeter}, which see)
has been in use at Waterloo since 1972, but is elsewhere unknown.
In audio jargon, the word refers to the bass speaker(s) on a hi-fi.
:WYSIAYG: /wiz'ee-ayg/ adj. Describes a user interface under
which "What You See Is *All* You Get"; an unhappy variant of
{WYSIWYG}. Visual, `point-and-shoot'-style interfaces tend to
have easy initial learning curves, but also to lack depth; they
often frustrate advanced users who would be better served by a
command-style interface. When this happens, the frustrated user
has a WYSIAYG problem. This term is most often used of editors,
word processors, and document formatting programs. WYSIWYG
`desktop publishing' programs, for example, are a clear win for
creating small documents with lots of fonts and graphics in them,
especially things like newsletters and presentation slides. When
typesetting book-length manuscripts, on the other hand, scale
changes the nature of the task; one quickly runs into WYSIAYG
limitations, and the increased power and flexibility of a
command-driven formatter like {{TeX}} or UNIX's `troff(1)'
becomes not just desirable but a necessity. Compare {YAFIYGI}.
**************** New entries in 2.9.8 *****************
:command key: [Mac users] n. Syn. {feature key}.
:cracking: n. The act of breaking into a computer system; what a
{cracker} does. Contrary to widespread myth, this does not
usually involve some mysterious leap of hackerly brilliance, but
rather persistence and the dogged repetition of a handful of fairly
well-known tricks that exploit common weaknesses in the security of
target systems. Accordingly, most crackers are only mediocre
hackers.
:feature key: n. The Macintosh key with the cloverleaf graphic on
its keytop; sometimes referred to as `flower', `pretzel',
`clover', `propeller', `beanie' (an apparent reference to the
major feature of a propeller beanie), {splat}, or the `command
key'. The Mac's equivalent of an {alt} key (and so labeled omed
on the Mac II). The proliferation of terms for this creature may
illustrate one subtle peril of iconic interfaces.
Many people have been mystified by the cloverleaf-like symbol that
appears on the feature key. Its oldest name is `cross of St.
Hannes', but it occurs in pre-Christian Viking art as a decorative
motif. Throughout Scandinavia today the road agencies use it to
mark sites of historical interest. Though this symbol technically
stands for the word `sev"ardhet' (interesting feature) many of
these are old churches; hence, the Swedish idiom for the symbol is
`kyrka', cognate to English `church' and Scots-dialect `kirk' but
pronounced /shir'k*/ in modern Swedish. This is in fact where
Apple got the symbol; Apple gives the translation "interesting
feature"!
:fork bomb: [UNIX] n. A particular species of {wabbit} that can
be written in one line of C (`main() {for(;;)fork();}') or shell
(`$0 & $0 &') on any UNIX system, or occasionally created by an
egregious coding bug. A fork bomb process `explodes' by
recursively spawning copies of itself (using the UNIX system call
`fork(2)'). Eventually it eats all the process table entries
and effectively wedges the system. Fortunately, fork bombs are
relatively easy to spot and kill, so creating one deliberately
seldom accomplishes more than to bring the just wrath of the gods
down upon the perpetrator. See also {logic bomb}.
:Great Worm, the: n. The 1988 Internet {worm} perpetrated by
{RTM}. This is a play on Tolkien (compare {elvish},
{elder days}). In the fantasy history of his Middle Earth
books, there were dragons powerful enough to lay waste to entire
regions; two of these (Scatha and Glaurung) were known as "the
Great Worms". This usage expresses the connotation that the RTM
hack was a sort of devastating watershed event in hackish history;
certainly it did more to make non-hackers nervous about the
Internet than anything before or since.
:hacker ethic, the: n. 1. The belief that information-sharing
is a powerful positive good, and that it is an ethical duty of
hackers to share their expertise by writing free software and
facilitating access to information and to computing resources
wherever possible. 2. The belief that system-cracking for fun
and exploration is ethically OK as long as the cracker commits
no theft, vandalism, or breach of confidentiality.
Both of these normative ethical principles are widely, but by no
means universally, accepted among hackers. Most hackers subscribe
to the hacker ethic in sense 1, and many act on it by writing and
giving away free software. A few go further and assert that
*all* information should be free and *any* proprietary
control of it is bad; this is the philosophy behind the {GNU}
project.
Sense 2 is more controversial: some people consider the act of
cracking itself to be unethical, like breaking and entering.
But this principle at least moderates the behavior of people who
see themselves as `benign' crackers (see also {samurai}). On
this view, it is one of the highest forms of hackerly courtesy
to (a) break into a system, and then (b) explain to the sysop,
preferably by email from a {superuser} account, exactly how it
was done and how the hole can be plugged --- acting as an
unpaid (and unsolicited) {tiger team}.
The most reliable manifestation of either version of the hacker
ethic is that almost all hackers are actively willing to share
technical tricks, software, and (where possible) computing
resources with other hackers. Huge cooperative networks such as
{USENET}, {FidoNet} and Internet (see {Internet address})
can function without central control because of this trait; they
both rely on and reinforce a sense of community that may be
hackerdom's most valuable intangible asset.
:kyrka: /shir'k*/ [Swedish] n. See {feature key}.
:netter: n. 1. Loosely, anyone with a {network address}. 2. More
specifically, a {USENET} regular. Most often found in the
plural. "If you post *that* in a technical group, you're
going to be flamed by angry netters for the rest of time!"
:smurf: /smerf/ [from the soc.motss newsgroup on USENET,
after some obnoxiously gooey cartoon characters] n. A newsgroup
regular with a habitual style that is irreverent, silly, and
cute. Like many other hackish terms for people, this one may
be praise or insult depending on who uses it. In general, being
referred to as a smurf is probably not going to make your day
unless you've previously adopted the label yourself in a spirit of
irony. Compare {old fart}.
:whalesong: n. The peculiar clicking and whooshing sounds made by a
PEP modem such as the Telebit Trailblazer as it tries to
synchronize with another PEP modem for their special high-speed
mode. This sound isn't anything like the normal two-tone handshake
between conventional modems and is instantly recognizable to anyone
who has heard it more than once. It sounds, in fact, very much
like whale songs. This noise is also called "the moose call" or
"moose tones".
:XEROX PARC: The famed Palo Alto Research Center. For more than a
decade, from the early 1970s into the mid-1980s, PARC yielded an
astonishing volume of groundbreaking hardware and software
innovations. The modern mice, windows, and icons style of software
interface was invented there. So was the laser printer and the
local-area network; and PARC's series of D machines anticipated the
powerful personal computers of the 1980s by a decade. Sadly, the
prophets at PARC were without honor in their own company, so much
so that it became a standard joke to describe PARC as a place that
specialized in developing brilliant ideas for everyone else.
The stunning shortsightedness and obtusity of XEROX's top-level
{suit}s has been well anatomized in `Fumbling The Future:
How XEROX Invented, Then Ignored, the First Personal Computer' by
Douglas K. Smith and Robert C. Alexander (William Morrow & Co,
1988, ISBN 0-688-09511-9).
**************** New entries in 2.9.9 *****************
:AIDX: n. /aydkz/ n. Derogatory term for IBM's perverted version
of UNIX, AIX, especially for the AIX 3.? used in the IBM RS/6000
series. A victim of the dreaded "hybridism" disease, this
attempt to combine the two main currents of the UNIX stream
({BSD} and {USG UNIX}) became a {monstrosity} to haunt
system administrators' dreams. For example, if new accounts are
created while many users are logged on, the load average jumps
quickly over 20 due to silly implementation of the user databases.
For a quite similar disease, compare {HP-SUX}. Also, compare
{terminak}, {Macintrash} {Nominal Semidestructor},
{Open DeathTrap}, {ScumOS}, {sun-stools}.
:barfmail: n. Multiple {bounce message}s accumulating to the
level of serious annoyance, or worse. The sort of thing that
happens when an inter-network mail gateway goes down or
wonky.
:barney: n. In Commonwealth hackish, `barney' is to {fred}
(sense #1) as {bar} is to {foo}. That is, people who
commonly use `fred' as their first metasyntactic variable will
often use `barney' second. The reference is, of course, to Fred
Flintstone and Barney Rubble in the Flintstones cartoons.
:BLOB: [acronym, Binary Large OBject] n. Used by database people to
refer to any random large block of bits that needs to be stored in
a database, such as a picture or sound file. The essential point
about a BLOB is that it's an object that cannot be interpreted
within the database itself.
:blurgle: /bler'gl/ [Great Britain] n. Spoken {metasyntactic
variable}, to indicate some text that is obvious from context, or
which is already known. If several words are to be replaced,
blurgle may well be doubled or trebled. "To look for something in
several files use `grep string blurgle blurgle'." In each case,
"blurgle blurgle" would be understood to be replaced by the file
you wished to search. Compare {mumble}, sense 6.
:brain fart: n. The actual result of a {braino}, as opposed to
the mental glitch that is the braino itself. E.g., typing
`dir' on a UNIX box after a session with DOS.
:C Programmer's Disease: n. The tendency of the undisciplined C
programmer to set arbitrary but supposedly generous static limits
on table sizes (defined, if you're lucky, by constants in header
files) rather than taking the trouble to do proper dynamic storage
allocation. If an application user later needs to put 68 elements
into a table of size 50, the afflicted programmer reasons that he
or she can easily reset the table size to 68 (or even as much as
70, to allow for future expansion) and recompile. This gives the
programmer the comfortable feeling of having made the effort to
satisfy the user's (unreasonable) demands, and often affords the
user multiple opportunities to explore the marvelous consequences
of {fandango on core}. In severe cases of the disease, the
programmer cannot comprehend why each fix of this kind seems only
to further disgruntle the user.
:candygrammar: n. A programming-language grammar that is mostly
{syntactic sugar}; the term is also a play on `candygram'.
{COBOL}, Apple's Hypertalk language, and a lot of the so-called
`4GL' database languages share this property. The usual intent
of such designs is that they be as English-like as possible, on the
theory that they will then be easier for unskilled people to
program. This intention comes to grief on the reality that syntax
isn't what makes programming hard; it's the mental effort and
organization required to specify an algorithm precisely that
costs. Thus the invariable result is that `candygrammar'
languages are just as difficult to program in as terser ones, and
far more painful for the experienced hacker.
[The overtones from the old Chevy Chase skit on Saturday Night Live
should not be overlooked. This was a "Jaws" parody.
Someone lurking outside an apartment door tries all kinds of bogus
ways to get the occupant to open up, while ominous music plays in
the background. The last attempt is a half-hearted "Candygram!"
When the door is opened, a shark bursts in and chomps the poor
occupant. There is a moral here for those attracted to
candygrammars. Note that, in many circles, pretty much the same
ones who remember Monty Python sketches, all it takes is the word
"Candygram!", suitably timed, to get people rolling on the
floor. --- GLS]
:cd tilde: /C-D til-d*/ vi. To go home. From the UNIX C-shell
and Korn-shell command `cd ~', which takes one to
one's `$HOME' (`cd' with no arguments happens to do the
same thing). By extension, may be used with other arguments; thus,
over an electronic chat link, `cd ~coffee' would
mean "I'm going to the coffee machine."
:confuser: n. Common soundalike slang for `computer'. Usually
encountered in compounds such as `confuser room', `personal
confuser', `confuser guru'. Usage: silly.
:cooked mode: [UNIX, by opposition with {raw mode}] n. The
normal character-input mode, with interrupts enabled and with
erase, kill and other special-character interpretations performed
directly by the tty driver. Oppose {raw mode}, {rare mode}.
This term is techspeak under UNIX but jargon elsewhere; other
operating systems often have similar mode distinctions, and the
raw/rare/cooked way of describing them has spread widely along with
the C language and other UNIX exports. Most generally, `cooked
mode' may refer to any mode of a system that does extensive
preprocessing before presenting data to a program.
:copious free time: [Apple; orig. fr. the intro to Tom Lehrer's
song "It Makes A Fellow Proud To Be A Soldier"] n. 1. [used
ironically to indicate the speaker's lack of the quantity in
question] A mythical schedule slot for accomplishing tasks held to
be unlikely or impossible. Sometimes used to indicate that the
speaker is interested in accomplishing the task, but believes that
the opportunity will not arise. "I'll implement the automatic
layout stuff in my copious free time." 2. [Archly] Time reserved
for bogus or otherwise idiotic tasks, such as implementation of
{chrome}, or the stroking of {suit}s. "I'll get back to him
on that feature in my copious free time."
:dead: adj. 1. Non-functional; {down}; {crash}ed. Especially
used of hardware. 2. At XEROX PARC, software that is working but
not undergoing continued development and support.
:death code: n. A routine whose job is to set everything in the
computer --- registers, memory, flags, everything --- to zero,
including that portion of memory where it is running; its last act
is to stomp on its own "store zero" instruction. Death code
isn't very useful, but writing it is an interesting hacking
challenge on architectures where the instruction set makes it
possible, such as the PDP-8 (it has also been done on the DG Nova).
Perhaps the ultimate death code is on the TI 990 series, where all
registers are actually in RAM, and the instruction "store
immediate 0" has the opcode "0". The PC will immediately wrap
around core as many times as it can until a user hits HALT. Any
empty memory location is death code. Worse, the manufacturer
recommended use of this instruction in startup code (which would be
in ROM and therefore survive).
:die: v. Syn. {crash}. Unlike {crash}, which is used
primarily of hardware, this verb is used of both hardware and
software. See also {go flatline}, {casters-up mode}.
:die horribly: v. The software equivalent of {crash and burn},
and the preferred emphatic form of {die}. "The converter
choked on an FF in its input and died horribly".
:dirtball: [XEROX PARC] n. A small, perhaps struggling outsider;
not in the major or even the minor leagues. For example, "Xerox
is not a dirtball company".
[Outsiders often observe in the PARC culture an institutional
arrogance which usage of this term exemplifies. The brilliance and
scope of PARC's contributions to computer science have been such
that this superior attitude is not much resented. --- ESR]
:error 33: [XEROX PARC] n. 1. Predicating one research effort upon
the success of another. 2. Allowing your own research effort to be
placed on the critical path of some other project (be it a research
effort or not).
:fat electrons: n. Old-time hacker David Cargill's theory on the
causation of computer glitches. Your typical electric utility
draws its line current out of the big generators with a pair of
coil taps located near the top of the dynamo. When the normal tap
brushes get dirty, they take them off line to clean them up, and use
special auxiliary taps on the *bottom* of the coil. Now,
this is a problem, because when they do that they get not ordinary
or `thin' electrons, but the fat'n'sloppy electrons that are
heavier and so settle to the bottom of the generator. These flow
down ordinary wires just fine, but when they have to turn a sharp
corner (as in an integrated-circuit via), they're apt to get stuck.
This is what causes computer glitches. [Fascinating. Obviously,
fat electrons must gain mass by {bogon} absorption --- ESR]
Compare {bogon}, {magic smoke}.
:fontology: [XEROX PARC] n. The body of knowledge dealing with the
construction and use of new fonts (e.g., for window systems and
typesetting software). It has been said that fontology
recapitulates file-ogeny.
[Unfortunately, this reference to the embryological dictum that
"Ontogeny recapitulates phylogeny" is not merely a joke. On the
Macintosh, for example, System 7 has to go through contortions to
compensate for an earlier design error that created a whole
different set of abstractions for fonts parallel to `files' and
`folders' --- ESR]
:for values of: [MIT] A common rhetorical maneuver at MIT is to use
any of the canonical {random numbers} as placeholders for
variables. "The max function takes 42 arguments, for arbitrary
values of 42." "There are 69 ways to leave your lover, for
69 = 50." This is especially likely when the speaker has uttered
a random number and realizes that it was not recognized as such,
but even `non-random' numbers are occasionally used in this
fashion. A related joke is that pi equals 3 --- for
small values of pi and large values of 3.
Historical note: this usage probably derives from the programming
language MAD (Michigan Algorithm Decoder), an Algol-like language
that was the most common choice among mainstream (non-hacker) users
at MIT in the mid-60s. It had a control structure FOR VALUES OF X
= 3, 7, 99 DO ... that would repeat the indicated instructions for
each value in the list (unlike the usual FOR that only works for
arithmetic sequences of values). MAD is long extinct, but similar
for-constructs still flourish (e.g., in UNIX's shell languages).
:frogging: [University of Waterloo] v. 1. Partial corruption of a
text file or input stream by some bug or consistent glitch, as
opposed to random events like line noise or media failures. Might
occur, for example, if one bit of each incoming character on a tty
were stuck, so that some characters were correct and others were
not. See {terminak} for a historical example. 2. By extension,
accidental display of text in a mode where the output device emits
special symbols or mnemonics rather than conventional ASCII. This
often happens, for example, when using a terminal or comm program
on a device like an IBM PC with a special `high-half' character set
and with the bit-parity assumption wrong. A hacker sufficiently
familiar with ASCII bit patterns might be able to read the display
anyway.
:fum: [XEROX PARC] n. At PARC, often the third of the standard
{metasyntactic variable}s (after {foo} and {bar}). Competes
with {baz}, which is more common outside PARC.
:guru meditation: n. Amiga equivalent of `panic' in UNIX
(sometimes just called a `guru' or `guru event'). When the
system crashes, a cryptic message of the form "GURU MEDITATION
#XXXXXXXX.YYYYYYYY" may appear, indicating what the problem
was. An Amiga guru can figure things out from the numbers.
Generally a {guru} event must be followed by a {Vulcan nerve
pinch}.
This term is (no surprise) an in-joke from the earliest days of the
Amiga. There used to be a device called a `Joyboard' which was
basically a plastic board built onto a joystick-like device; it
was sold with a skiing game cartridge for the Atari game machine.
It is said that whenever the prototype OS crashed, the system
programmer responsible would calm down by concentrating on a
solution while sitting cross-legged on a Joyboard trying to keep
the board in balance. This position resembled that of a
meditating guru. Sadly, the joke was removed in AmigaOS 2.04.
:hammer: vt. Commonwealth hackish syn. for {bang on}.
:handle: n. 1. [from CB slang] An electronic pseudonym; a `nom
de guerre' intended to conceal the user's true identity. Network
and BBS handles function as the same sort of simultaneous
concealment and display one finds on Citizen's Band radio, from
which the term was adopted. Use of grandiose handles is
characteristic of {cracker}s, {weenie}s, {spod}s, and
other lower forms of network life; true hackers travel on their own
reputations rather than invented legendry. 2. [Mac] A pointer to a
pointer to dynamically-allocated memory; the extra level of
indirection allows on-the-fly memory compaction (to cut down on
fragmentation) or aging out of unused resources, with minimal
impact on the (possibly multiple) parts of the larger program
containing references to the allocated memory. Compare {snap}
(to snap a handle would defeat its purpose); see also {aliasing
bug}, {dangling pointer}.
:haque: /hak/ [USENET] n. Variant spelling of {hack}, used
only for the noun form and connoting an {elegant} hack.
:jack in: v. To log on to a machine or connect to a network or
{BBS}, esp. for purposes of entering a {virtual reality}
simulation such as a {MUD} or {IRC} (leaving is "jacking
out"). This term derives from {cyberpunk} SF, in which it was
used for the act of plugging an electrode set into neural sockets
in order to interface the brain directly to a virtual reality.
It's primarily used by MUD and IRC fans and younger hackers on BBS
systems.
:Life is hard: [XEROX PARC] prov. This phrase has two possible
interpretations: (1) "While your suggestion may have some merit, I
will behave as though I hadn't heard it." (2) "While your
suggestion has obvious merit, equally obvious circumstances prevent
it from being seriously considered." The charm of the phrase lies
precisely in this subtle but important ambiguity.
:line 666: [from Christian eschatological myth] n. The notational
line of source at which a program fails for obscure reasons,
implying either that *somebody* is out to get it (when you are
the programmer), or that it richly deserves to be so gotten (when
you are not). "It works when I trace through it, but seems to
crash on line 666 when I run it." "What happens is that whenever
a large batch comes through, mmdf dies on the Line of the Beast.
Probably some twit hardcoded a buffer size."
:line noise: n. 1. [techspeak] Spurious characters due to
electrical noise in a communications link, especially an RS-232
serial connection. Line noise may be induced by poor connections,
interference or crosstalk from other circuits, electrical storms,
{cosmic rays}, or (notionally) birds crapping on the phone
wires. 2. Any chunk of data in a file or elsewhere that looks like
the results of line noise in sense 1. 3. Text that is
theoretically a readable text or program source but employs syntax
so bizarre that it looks like line noise in senses 1 or 2. Yes,
there are languages this ugly. The canonical example is {TECO};
it is often claimed that "TECO's input syntax is indistinguishable
from line noise." Other non-{WYSIWYG} editors, such as Multics
`qed' and Unix `ed', in the hands of a real hacker, also
qualify easily, as do deliberately obfuscated languages such as
{INTERCAL}.
:loose bytes: n. Commonwealth hackish term for the padding bytes or
{shim}s many compilers insert between members of a record or
structure to cope with alignment requirements imposed by the
machine architecture.
:memory smash: [XEROX PARC] n. Writing through a pointer that
doesn't point to what you think it does. This occasionally reduces
your machine to a rubble of bits. Note that this is subtly
different from (and more general than) related terms such as a
{memory leak} or {fandango on core} because it doesn't imply
an allocation error or overrun condition.
:metasyntactic variable: n. A name used in examples and understood
to stand for whatever thing is under discussion, or any random
member of a class of things under discussion. The word {foo} is
the {canonical} example. To avoid confusion, hackers never
(well, hardly ever) use `foo' or other words like it as permanent
names for anything. In filenames, a common convention is that any
filename beginning with a metasyntactic-variable name is a
{scratch} file that may be deleted at any time.
To some extent, the list of one's preferred metasyntactic variables
is a cultural signature. They occur both in series (used for
related groups of variables or objects) and as singletons. Here
are a few common signatures:
{foo}, {bar}, {baz}, {quux}, quuux, quuuux...:
MIT/Stanford usage, now found everywhere (thanks largely to early
versions of this lexicon!). At MIT, {baz} dropped out of use for
a while in the 1970s and '80s. A common recent mutation of this
sequence inserts {qux} before {quux}.
{foo}, {bar}, thud, grunt:
This series was popular at CMU. Other CMU-associated variables
include {gorp}.
{foo}, {bar}, fum:
This series is reported to be common at XEROX PARC.
{fred}, {barney}:
See the entry for {fred}. These tend to be Britishisms.
{toto}, titi, tata, tutu:
Standard series of metasyntactic variables among francophones.
{corge}, {grault}, {flarp}:
Popular at Rutgers University and among {GOSMACS} hackers.
zxc, spqr, {wombat}:
Cambridge University (England).
shme
Berkeley, GeoWorks. Pronounced /shmee/.
{foo}, {bar}, zot
Helsinki University of Technology, Finland.
blarg, wibble
New Zealand
Of all these, only `foo' and `bar' are universal (and {baz}
nearly so). The compounds {foobar} and `foobaz' also enjoy
very wide currency.
Some jargon terms are also used as metasyntactic names; {barf}
and {mumble}, for example. See also {{Commonwealth Hackish}}
for discussion of numerous metasyntactic variables found in Great
Britain and the Commonwealth.
:muddie: n. Syn. {mudhead}. More common in Great Britain, possibly
because system administrators there like to mutter "bloody
muddies" when annoyed at the species.
:nadger: /nad'jr/ [Great Britain] v. Of software or hardware (not
people), to twiddle some object in a hidden manner, generally so
that it conforms better to some format. For instance, string
printing routines on 8-bit processors often take the string text
from the instruction stream, thus a print call looks like `jsr
print:"Hello world"'. The print routine has to `nadger' the
return instruction pointer so that the processor doesn't try to
execute the text as instructions.
:netsplit: n. Syn. {netburp}.
:Nominal Semidestructor: n. Sound-alike slang for `National
Semiconductor', found among other places in the 4.3BSD networking
sources. During the late 1970s to mid-1980s this company marketed
a series of microprocessors including the NS16000 and NS32000 and
several variants. At one point early in the great microprocessor
race, the specs on these chips made them look like serious
competition for the rising Intel 80x86 and Motorola 680x0 series.
Unfortunately, the actual parts were notoriously flaky and never
implemented the full instruction set promised in their literature,
apparently because the company couldn't get any of the mask
steppings to work as designed. They eventually sank without trace,
joining the Zilog Z80,000 and a few even more obscure also-rans in
the graveyard of forgotten microprocessors. Compare {HP-SUX},
{AIDX}, {buglix}, {Macintrash}, {Telerat}, {Open
DeathTrap}, {ScumOS}, {sun-stools}.
:one-banana problem: n. At mainframe shops, where the computers
have operators for routine administrivia, the programmers and
hardware people tend to look down on the operators and claim that a
trained monkey could do their job. It is frequently observed that
the incentives that would be offered said monkeys can be used as a
scale to describe the difficulty of a task. A one-banana problem
is simple; hence, "It's only a one-banana job at the most; what's
taking them so long?"
At IBM, folklore divides the world into one-, two-, and
three-banana problems. Other cultures have different hierarchies
and may divide them more finely; at ICL, for example, five grapes
(a bunch) equals a banana. Their upper limit for the in-house
{sysape}s is said to be two bananas and three grapes (another
source claims it's three bananas and one grape, but observes
"However, this is subject to local variations, cosmic rays and
ISO"). At a complication level any higher than that, one asks the
manufacturers to send someone around to check things.
See also {Infinite-Monkey Theorem}.
:optical diff: n. See {vdiff}.
:phase-wrapping: [MIT] n. Syn. {wrap around}, sense 2.
:plaid screen: [XEROX PARC] n. A `special effect' that occurs
when certain kinds of {memory smash}es overwrite the control
blocks or image memory of a bit-mapped display. The term "salt and
pepper" may refer to a different pattern of similar origin.
Though the term as coined at PARC refers to the result of an error,
some of the {X} demos induce plaid-screen effects deliberately
as a {display hack}.
:point-and-drool interface: n. Parody of the techspeak term
`point-and-shoot interface', describing a windows, icons, and
mice-based interface such as is found on the Macintosh. The
implication, of course, is that such an interface is only suitable
for idiots. See {for the rest of us}, {WIMP environment},
{Macintrash}, {drool-proof paper}. Also `point-and-grunt
interface'.
:power hit: n. A spike or drop-out in the electricity supplying
your machine; a power {glitch}. These can cause crashes and
even permanent damage to your machine(s).
:printing discussion: [PARC] n. A protracted, low-level,
time-consuming, generally pointless discussion of something only
peripherally interesting to all.
:register dancing: n. Many older processor architectures suffer
from a serious shortage of general-purpose registers. This is
especially a problem for compiler-writers, because their generated
code needs places to store temporaries for things like intermediate
values in expression evaluation. Some designs with this problem,
like the Intel 80x86, do have a handful of special-purpose
registers that can be pressed into service, providing suitable care
is taken to avoid unpleasant side effects on the state of the
processor: while the special-purpose register is being used to hold
an intermediate value, a delicate minuet is required in which the
previous value of the register is saved and then restored just before
the official function (and value) of the special-purpose register is
again needed.
:RTBM: /R-T-B-M/ [UNIX] imp. Commonwealth Hackish variant of
{RTFM}; expands to `Read The Bloody Manual'. RTBM is often the
entire text of the first reply to a question from a {newbie};
the *second* would escalate to "RTFM".
:RTFB: /R-T-F-B/ [UNIX] imp. Acronym for `Read The Fucking
Binary'. Used when neither documentation nor the the source for the
problem at hand exists, and the only thing to do is use some
debugger or monitor and directly analyze the assembler or even
the machine code. "No source for the buggy port driver? Aaargh! I
*hate* proprietary operating systems. Time to RTFB."
:RTFS: /R-T-F-S/ [UNIX] 1. imp. Acronym for `Read The Fucking
Source'. Stronger form of {RTFM}, used when the problem
at hand is not necessarily obvious and not available from
the manuals --- or the manuals are not yet written and maybe
never will be. For even more tricky situations, see {RTFB}.
2. imp. `Read The Fucking Standard'; this oath can only be used when
the problem area (e.g., a language or operating system interface) has
actually been codified in a ratified standards document. The
existence of these standards documents (and the technically
inappropriate but politically mandated compromises that they
inevitably contain, and the stifling language in which they are
invariably written, and the unbelievably tedious bureaucratic process
by which they are produced) can be unnerving to hackers, who are used
to a certain amount of ambiguity in the specifications of the systems
they use. (Hackers feel that such ambiguities are acceptable as long
as the {Right Thing} to do is obvious to any thinking observer;
sadly, this casual attitude towards specifications becomes unworkable
when a system becomes popular in the {Real World}.) Since a hacker
is likely to feel that a standards document is both unnecessary and
technically deficient, the deprecation inherent in this term may be
directed as much against the standard as against the person who ought
to read it.
:scag: vt. To destroy the data on a disk, either by corrupting the
filesystem or by causing media damage. "That last power hit scagged
the system disk." Compare {scrog}, {roach}.
:sig virus: n. A parasitic {meme} embedded in a {sig block}.
There was a {meme plague} or fad for these on USENET in late
1991. Most were equivalents of "I am a .sig virus. Please reproduce
me in your .sig block.". Of course, the .sig virus's memetic hook
is the giggle value of going along with the gag; this, however,
was a self-limiting phenomenon as more and more people picked up
on the idea. There were creative variants on it; some people
stuck `sig virus antibody' texts in their sigs, and there was at
least one instance of a sig virus eater.
:spod: [Great Britain] n. A lower form of life found on {talker
system}s and {MUD}s. The spod has few friends in {RL} and
uses talkers instead, finding communication easier and preferable
over the net. He has all the negative traits of the {computer
geek} without having any interest in computers per se. Lacking any
knowledge of or interest in how networks work, and considering his
access a God-given right, he is a major irritant to sysadmins,
clogging up lines in order to reach new MUDs, following passed-on
instructions on how to sneak his way onto Internet ("Wow! It's in
America!") and complaining when he is not allowed to use busy
routes. A true spod will start any conversation with "Are you
male or female?" (and follow it up with "Got any good
numbers/IDs/passwords?") and will not talk to someone physically
present in the same terminal room until they log onto the same
machine that he is using and enter talk mode. Compare {newbie},
{tourist}, {weenie}, {twink}, {terminal junkie}.
:stone knives and bearskins: [ITS, prob. from the Star Trek Classic
episode "The City on the Edge of Forever"] n. A term
traditionally used by {ITS} fans to describe (and deprecate)
computing environments they regard as less advanced, with the
(often correct) implication that said environments were grotesquely
primitive in light of what is known about good ways to design
things. As in "Don't get too used to the facilities here. Once
you leave MIT it's stone knives and bearskins as far as the eye can
see". Compare {steam-powered}.
:sun lounge: [Great Britain] n. The room where all the Sun
workstations live. The humor in this term comes from the fact
that it's also in mainstream use to describe a solarium, and all
those Sun workstations clustered together give off an amazing
amount of heat.
:sysape: /sysape/ n. A rather derogatory term for a computer
operator; a play on {sysop} common at sites that use the banana
hierarchy of problem complexity (see {one-banana
problem}).
:TANSTAAFL: /tan'sto-fl/ [acronym, from Robert Heinlein's
classic `The Moon is a Harsh Mistress'.] "There Ain't No
Such Thing As A Free Lunch", often invoked when someone is balking
at an ugly design requirement or the prospect of using an
unpleasantly {heavyweight} technique. "What? Don't tell me I
have to implement a database back end to get my address book
program to work!" "Well, TANSTAAFL you know." This phrase owes
some of its popularity to the high concentration of science-fiction
fans and political libertarians in hackerdom (see Appendix
B).
:This can't happen: Less clipped variant of {can't happen}.
:thumb: n. The slider on a window-system scrollbar. So called
because moving it allows you to browse through the contents of a
text window in a way analogous to thumbing through a book.
:whack: v. According to arch-hacker James Gosling, to "...modify a
program with no idea whatsoever how it works." (See {whacker}.)
It is actually possible to do this in nontrivial circumstances if
the change is small and well-defined and you are very good at
{glark}ing things from context. As a trivial example, it is
relatively easy to change all `stderr' writes to `stdout'
writes in a piece of C filter code which remains otherwise
mysterious.
:What's a spline?: [XEROX PARC] This phrase expands to: "You have
just used a term that I've heard for a year and a half, and I feel
I should know, but don't. My curiosity has finally overcome my
guilt." The PARC lexicon adds "Moral: don't hesitate to ask
questions, even if they seem obvious."
**************** New entries in 2.9.10 *****************
:0: Numeric zero, as opposed to the letter `O' (the 15th letter of
the English alphabet). In their unmodified forms they look a lot
alike, and various kluges invented to make them visually distinct
have compounded the confusion. If your zero is center-dotted and
letter-O is not, or if letter-O looks almost rectangular but zero
looks more like an American football stood on end (or the reverse),
you're probably looking at a modern character display (though the
dotted zero seems to have originated as an option on IBM 3270
controllers). If your zero is slashed but letter-O is not, you're
probably looking at an old-style ASCII graphic set descended from
the default typewheel on the venerable ASR-33 Teletype
(Scandinavians, for whom slashed-O is a letter, curse this
arrangement). If letter-O has a slash across it and the zero does
not, your display is tuned for a very old convention used at IBM
and a few other early mainframe makers (Scandinavians curse
*this* arrangement even more, because it means two of their
letters collide). Some Burroughs/Unisys equipment displays a zero
with a *reversed* slash. And yet another convention common on
early line printers left zero unornamented but added a tail or hook
to the letter-O so that it resembled an inverted Q or cursive
capital letter-O. Are we sufficiently confused yet?
:1TBS: // n. The "One True Brace Style"; see {indent style}.
:AFJ: // n. Written-only abbreviation for "April Fool's Joke".
Elaborate April Fool's hoaxes are a long-established tradition on
USENET and Internet; see {kremvax} for an example. In fact,
April Fool's Day is the *only* seasonal holiday marked by
customary observances on the hacker networks.
:altmode: n. Syn. {alt} sense 3.
:blue wire: [IBM] n. Patch wires added to circuit boards at the factory to
correct design or fabrication problems. These may be necessary if
there hasn't been time to design and qualify another board version.
Compare {purple wire}, {red wire}, {yellow wire}.
:bottom feeder: n. syn. for {slopsucker}, derived from the
fishermen's and naturalists' term for finny creatures who subsist
on the primordial ooze.
:boustrophedon: [from a Greek word for turning like an ox while
plowing] n. An ancient method of writing using alternate
left-to-right and right-to-left lines. This term is actually
philologists' techspeak and typesetters' jargon. Erudite hackers
use it for an optimization performed by some computer typesetting
software and moving-head printers. The adverbial form
`boustrophedonically' is also found (hackers purely love
constructions like this).
:bread crumbs: n. Debugging statements inserted into a program that
emit output or log indicators of the program's {state} to a file
so you can see where it dies or pin down the cause of surprising
behavior. The term is probably a reference to the Hansel and Gretel
story from the Brothers Grimm; in several variants, a character
leaves a trail of bread crumbs so as not to get lost in the
woods.
:BUAF: // [abbreviation, from alt.fan.warlord] n. Big
Ugly ASCII Font --- a special form of {ASCII art}. Various
programs exist for rendering text strings into block, bloob, and
pseudo-script fonts in cells between four and six character cells
on a side; this is smaller than the letters generated by older
{banner} (sense 2) programs. These are sometimes used to render
one's name in a {sig block}, and are critically referred to as
`BUAF's. See {warlording}.
:BUAG: // [abbreviation, from alt.fan.warlord] n. Big Ugly
ASCII Graphic. Pejorative term for ugly {ASCII ART}, especially
as found in {sig block}s. For some reason, mutations of the
head of Bart Simpson are particularly common in the least
imaginative {sig block}s. See {warlording}.
:can't happen: The traditional program comment for code executed
under a condition that should never be true, for example a file
size computed as negative. Often, such a condition being true
indicates data corruption or a faulty algorithm; it is almost
always handled by emitting a fatal error message and terminating or
crashing, since there is little else that can be done. Some case
variant of "can't happen" is also often the text emitted if the
`impossible' error actually happens! Although "can't happen"
events are genuinely infrequent in production code, programmers
wise enough to check for them habitually are often surprised at how
frequently they are triggered during development and how many
headaches checking for them turns out to head off. See also
{firewall code} (sense 2).
:cascade: n. 1. A huge volume of spurious error-message output
produced by a compiler with poor error recovery. Too frequently,
one trivial syntax error (such as a missing `)' or `}') throws the
parser out of synch so that much of the remaining program text is
interpreted as garbaged or ill-formed. 2. A chain of USENET
followups, each adding some trivial variation or riposte to the text
of the previous one, all of which is reproduced in the new message;
an {include war} in which the object is to create a sort of
communal graffito.
:check: n. A hardware-detected error condition, most commonly used
to refer to actual hardware failures rather than software-induced
traps. E.g., a `parity check' is the result of a
hardware-detected parity error. Recorded here because the word
often humorously extended to non-technical problems. For example,
the term `child check' has been used to refer to the problems
caused by a small child who is curious to know what happens when
s/he presses all the cute buttons on a computer's console (of
course, this particular problem could have been prevented with
{molly-guard}s).
:core cancer: n. A process that exhibits a slow but inexorable
resource {leak} --- like a cancer, it kills by crowding out
productive `tissue'.
:crack root: v. To defeat the security system of a UNIX machine and
gain {root} privileges thereby; see {cracking}.
:creep: v. To advance, grow, or multiply inexorably. In hackish usage
this verb has overtones of menace and silliness, evoking the
creeping horrors of low-budget monster movies.
:disclaimer: n. [USENET] n. Statement ritually appended to many USENET
postings (sometimes automatically, by the posting software) reiterating
the fact (which should be obvious, but is easily forgotten) that the
article reflects its author's opinions and not necessarily those of
the organization running the machine through which the article
entered the network.
:drum: adj, n. Ancient techspeak term referring to slow,
cylindrical magnetic media that were once state-of-the-art
mass-storage devices. Under BSD UNIX the disk partition used for
swapping is still called `/dev/drum'; this has led to
considerable humor and not a few straight-faced but utterly bogus
`explanations' getting foisted on {newbie}s. See also "{The
Story of Mel, a Real Programmer}" in {Appendix A}.
:dumb terminal: n. A terminal that is one step above a {glass tty},
having a minimally addressable cursor but no on-screen editing or
other features normally supported by a {smart terminal}. Once upon a
time, when glass ttys were common and addressable cursors were
something special, what is now called a dumb terminal could pass for
a smart terminal.
:file signature: n. A {magic number} sense 3.
:FITNR: // [Thinking Machines, Inc.] Fixed In the Next Release.
A written-only notation attached to bug reports. Often wishful
thinking.
:flypage: /fli:'payj/ n. (alt. `fly page') A {banner}, sense
1.
:gilley: [USENET] n. The unit of analogical bogosity. According to
its originator, the standard for one gilley was "the act of
bogotoficiously comparing the shutting down of 1000 machines for a
day with the killing of one person". The milligilley has been
found to suffice for most normal conversational exchanges.
:gripenet: [IBM] n. A wry (and thoroughly unofficial) name for IBM's
internal VNET system, deriving from its common use by IBMers to
voice pointed criticism of IBM management that would be taboo in
more formal channels.
:hand-roll: [from obs. mainstream slang `hand-rolled' in
opposition to `ready-made', referring to cigarettes] v. To
perform a normally automated software installation or configuration
process {by hand}; implies that the normal process failed due to
bugs in the configurator or was defeated by something exceptional
in the local environment. "The worst thing about being a gateway
between four different nets is having to hand-roll a new sendmail
configuration every time any of them upgrades."
:heatseeker: [IBM] n. A customer who can be relied upon to buy,
without fail, the latest version of an existing product (not quite
the same as a member the {lunatic fringe}). A 1993 example of a
heatseeker is someone who, owning a 286 PC and Windows 3.0, goes
out and buys Windows 3.1 (which offers no worthwhile benefits
unless you have a 386). If all customers were heatseekers, vast
amounts of money could be made by just fixing the bugs in each
release (n) and selling it to them as release (n+1).
:idempotent: [from mathematical techspeak] adj. Acting as if used
only once, even if used multiple times. This term is often used
with respect to {C} header files, which contain common
definitions and declarations to be included by several source
files. If a header file is ever included twice during the same
compilation (perhaps due to nested #include files), compilation
errors can result unless the header file has protected itself
against multiple inclusion; a header file so protected is said to
be idempotent. The term can also be used to describe an
initialization subroutine that is arranged to perform some
critical action exactly once, even if the routine is called several
times.
:If you want X, you know where to find it.: There is a legend that
Dennis Ritchie, inventor of {C}, once responded to demands for
features resembling those of what at the time was a much more
popular language by observing "If you want PL/I, you know where to
find it." Ever since, this has been hackish standard form for
fending off requests to alter a new design to mimic some older
(and, by implication, inferior and {baroque}) one. The case X =
{Pascal} manifests semi-regularly on USENET's comp.lang.c
newsgroup. Indeed, the case X = X has been reported in
discussions of graphics software (see {X}).
:Imminent Death Of The Net Predicted!: [USENET] prov. Since
{USENET} first got off the ground in 1980--81, it has grown
exponentially, approximately doubling in size every year. On the
other hand, most people feel the {signal-to-noise ratio} of
USENET has dropped steadily. These trends led, as far back as
mid-1983, to predictions of the imminent collapse (or death) of the
net. Ten years and numerous doublings later, enough of these
gloomy prognostications have been confounded that the phrase
"Imminent Death Of The Net Predicted!" has become a running joke,
hauled out any time someone grumbles about the {S/N ratio} or
the huge and steadily increasing volume or the possible loss of a
key node or link, or the potential for lawsuits when ignoramuses
post copyrighted material, etc., etc., etc.
:jolix: n. /joh'liks/ n.,adj. 386BSD, the freeware port of the
BSD Net/2 release to the Intel i386 architecture by Bill Jolitz and
friends. Used to differentiate from BSDI's port based on the same
source tape, which is called BSD/386. See {BSD}.
:KIBO: /ki:'boh/ 1. [acronym] Knowledge In, Bullshit Out. A
summary of what happens whenever valid data is passed through an
organization (or person) that deliberately or accidentally
disregards or ignores its significance. Consider, for example,
what an advertising campaign can do with a product's actual
specifications. Compare {GIGO}; see also {SNAFU principle}.
2. James Parry <kibo@world.std.com>, a USENETter infamous for
various surrealist net.pranks and an uncanny, machine-assisted
knack for joining any thread in which his nom de guerre is
mentioned.
:Lasherism: [Harvard] n. A program that solves a standard problem
(such as the Eight Queens puzzle or implementing the {life}
algorithm) in a deliberately nonstandard way. Distinguished from a
{crock} or {kluge} by the fact that the programmer did it on
purpose as a mental exercise. Such constructions are quite popular
in exercises such as the {Obfuscated C contest}, and
occasionally in {retrocomputing}. Lew Lasher was a student at
Harvard around 1980 who became notorious for such behavior.
:lightweight: adj. Opposite of {heavyweight}; usually found in
combining forms such as `lightweight process'.
:manularity: /man`yoo-la'ri-tee/ [prob. fr. techspeak `manual'
+ `granularity'] n. A notional measure of the manual labor
required for some task, particularly one of the sort that
automation is supposed to eliminate. "Composing English on paper
has much higher manularity than using a text editor, especially in
the revising stage." Hackers tend to consider manularity a symptom
of primitive methods; in fact, a true hacker confronted with an
apparent requirement to do a computing task {by hand} will
inevitably seize the opportunity to build another tool (see
{toolsmith}).
:nasal demons: n. Recognized shorthand on the USENET group
comp.std.c for any unexpected behavior of a C compiler on
encountering an undefined construct. During a discussion on that
group in early 1992, a regular remarked "When the compiler
encounters [a given undefined construct] it is legal for it to make
demons fly out of your nose" (the implication is that it may
choose any arbitrarily bizarre way to interpret the code without
violating the ANSI C standard). Someone else followed up with a
reference to "nasal demons", which quickly became established.
:NetBOLLIX: [from bollix: to bungle] n. {IBM}'s NetBIOS, an
extremely {brain-damaged} network protocol that, like {Blue
Glue}, is used at commercial shops that don't know any better.
:nroff:: /en'rof/ [UNIX, from "new roff" (see {{troff}})] n. A
companion program to the UNIX typesetter {{troff}}, accepting
identical input but preparing output for terminals and line
printers.
:Open DeathTrap: n. Abusive hackerism for the Santa Cruz
Operation's `Open DeskTop' product, a Motif-based graphical
interface over their UNIX. The funniest part is that this was
coined by SCO's own developers...compare {AIDX},
{terminak}, {Macintrash} {Nominal Semidestructor},
{ScumOS}, {sun-stools}, {HP-SUX}.
:optical grep: n. See {vgrep}.
:PARC: n. See {XEROX PARC}.
:pastie: /pay'stee/ n. An adhesive-backed label designed to be
attached to a key on a keyboard to indicate some non-standard
character which can be accessed through that key. Pasties are
likely to be used in APL environments, where almost every key is
associated with a special character. A pastie on the R key, for
example, would remind the user that it is used to generate the rho
character. The term properly refers to nipple-concealing devices
formerly worn by strippers in concession to indecent-exposure
laws; compare {tits on a keyboard}.
:PostScript:: n. A Page Description Language ({PDL}), based on
work originally done by John Gaffney at Evans and Sutherland in
1976, evolving through `JaM' (`John and Martin', Martin Newell) at
{XEROX PARC}, and finally implemented in its current form by
John Warnock et al. after he and Chuck Geschke founded Adobe
Systems Incorporated in 1982. PostScript gets its leverage by
using a full programming language, rather than a series of
low-level escape sequences, to describe an image to be printed on a
laser printer or other output device (in this it parallels
{EMACS}, which exploited a similar insight about editing
tasks). It is also noteworthy for implementing on-the fly
rasterization, from Bezier curve descriptions, of high-quality
fonts at low (e.g. 300 dpi) resolution (it was formerly believed
that hand-tuned bitmap fonts were required for this task). Hackers
consider PostScript to be among the most elegant hacks of all time,
and the combination of technical merits and widespread availability
has made PostScript the language of choice for graphical
output.
:postcardware: n. {Shareware} that borders on {freeware}, in
that the author requests only that satisfied users send a postcard
of their home town or something. (This practice, silly as it might
seem, serves to remind users that they are otherwise getting
something for nothing, and may also be psychologically related to
real estate `sales' in which $1 changes hands just to keep the
transaction from being a gift.)
:purple wire: [IBM] n. Wire installed by Field Engineers to work
around problems discovered during testing or debugging. These are
called `purple wires' even when (as is frequently the case) their
actual physical color is yellow.... Compare {blue wire},
{yellow wire}, and {red wire}.
:quine: [from the name of the logician Willard V. Quine, via
Douglas Hofstadter] n. A program that generates a copy of its own
source text as its complete output. Devising the shortest possible
quine in some given programming language is a common hackish
amusement. Here is one classic quine:
((lambda (x)
(list x (list (quote quote) x)))
(quote
(lambda (x)
(list x (list (quote quote) x)))))
This one works in LISP or Scheme. It's relatively easy to write
quines in other languages such as Postscript which readily handle
programs as data; much harder (and thus more challenging!) in
languages like C which do not. Here is a classic C quine for ASCII
machines:
char*f="char*f=%c%s%c;main()
{printf(f,34,f,34,10);}%c";
main(){printf(f,34,f,34,10);}
For excruciatingly exact quinishness, remove the interior line
breaks. Some infamous {Obfuscated C Contest} entries have been
quines that reproduced in exotic ways.
:rainbow series: n. Any of several series of technical manuals
distinguished by cover color. The original rainbow series was the
NCSC security manuals (see {Orange Book}, {crayola books});
the term has also been commonly applied to the PostScript reference
set (see {Red Book}, {Green Book}, {Blue Book}, {White
Book}). Which books are meant by "`the' rainbow series"
unqualified is thus dependent on one's local technical culture.
:real: adj. Not simulated. Often used as a specific antonym to
{virtual} in any of its jargon senses.
:red wire: [IBM] n. Patch wires installed by programmers who have
no business mucking with the hardware. It is said that the only
thing more dangerous than a hardware guy with a code patch is a
{softy} with a soldering iron.... Compare {blue wire},
{yellow wire}, {purple wire}.
:round tape: n. Industry-standard 1/2-imch magnetic tape (7- or
9-track) on traditional circular reels; oppose {square tape}.
:scanno: /skan'oh/ n. An error in a document caused by a scanner
glitch, analogous to a typo or {thinko}.
:schroedinbug: /shroh'din-buhg/ [MIT: from the Schroedinger's Cat
thought-experiment in quantum physics] n. A design or
implementation bug in a program that doesn't manifest until someone
reading source or using the program in an unusual way notices that
it never should have worked, at which point the program promptly
stops working for everybody until fixed. Though (like {bit
rot}) this sounds impossible, it happens; some programs have
harbored latent schroedinbugs for years. Compare {heisenbug},
{Bohr bug}, {mandelbug}.
:scruffies: n. See {neats vs. scruffies}.
:ScumOS: /skuhm'os/ or /skuhm'O-S/ n. Unflattering hackerism
for SunOS, the UNIX variant supported on Sun Microsystems's UNIX
workstations (see also {sun-stools}), and compare {AIDX},
{terminak}, {Macintrash}, {Nominal Semidestructor},
{Open DeathTrap}, {HP-SUX}. Despite what this term might
suggest, Sun was founded by hackers and still enjoys excellent
relations with hackerdom; usage is more often in exasperation than
outright loathing.
:shambolic link: /sham-bol'ik link/ n. A UNIX symbolic link,
particularly when it confuses you, points to nothing at all, or
results in you ending up in some completely unexpected part of the
filesystem....
:shim: n. A small piece of data inserted in order to achieve a
desired memory alignment or other addressing property. For
example, the PDP-11 UNIX linker, in split I&D (instructions and
data) mode, inserts a two-byte shim at location 0 in data space so
that no data object will have an address of 0 (and be confused with
the C null pointer). See also {loose bytes}.
:SIG: /sig/ n. (also common as a prefix in combining forms) The
Association for Computing Machinery traditionally sponsors Special
Interest Groups in various technical areas; well-known ones include
SIGPLAN (the Special Interest Group on Programming Languages),
SIGARCH (the Special Interest Group for Computer Architecture) and
SIGGRAPH (the Special Interest Group for Computer Graphics).
Hackers, not surprisingly, like to overextend this naming
convention to less formal associations like SIGBEER (at ACM
conferences) and SIGFOOD (at University of Illinois).
:smoke and mirrors: n. Marketing deceptions. The term is
mainstream in this general sense. Among hackers it's strongly
associated with bogus demos and crocked {benchmark}s (see also
{MIPS}, {machoflops}). "They claim their new box cranks 50
MIPS for under $5000, but didn't specify the instruction mix ---
sounds like smoke and mirrors to me." The phrase has been said to
derive from carnie slang for magic acts and `freak show' displays
that depend on `trompe l'oeil' effects, but also calls to mind
the fierce Aztec god Tezcatlipoca (lit. "Smoking Mirror") for
whom the hearts of huge numbers of human sacrificial victims were
regularly cut out. Upon hearing about a rigged demo or yet another
round of fantasy-based marketing promises, hackers often feel
analogously disheartened.
:spike: v. To defeat a selection mechanism by introducing a
(sometimes temporary) device that forces a specific result. The
word is used in several industries; telephone engineers refer to
spiking a relay by inserting a pin to hold the relay in either the
closed or open state, and railroaders refer to spiking a
track switch so that it cannot be moved. In programming
environments it normally refers to a temporary change, usually for
testing purposes (as opposed to a permanent change, which would be
called {hardwired}).
:spool file: n. Any file to which data is {spool}ed to await the
next stage of processing. Especially used in circumstances where
spooling the data copes with a mismatch between speeds in two
devices or pieces of software. For example, when you send mail
under UNIX, it's typically copied to a spool file to await a
transport {demon}'s attentions. This is borderline techspeak.
:square tape: n. Mainframe magnetic tape cartridges for use with
IBM 3480 or compatible tape drives; or QIC tapes used on
workstations and micros. The term comes from the square (actually
rectangular) shape of the cartridges; contrast {round tape}.
:That's not a bug, that's a feature!: The {canonical} first
parry in a debate about a purported bug. The complainant, if
unconvinced, is likely to retort that the bug is then at best a
{misfeature}. See also {feature}.
:TMRCie: /tmerk'ee/, [MIT] n. A denizen of {TMRC}.
:trawl: v. To sift through large volumes of data (e.g., USENET
postings, FTP archives, or the Jargon File) looking for something
of interest.
:troff:: /tee'rof/ or /trof/ [UNIX] n. The gray eminence of UNIX
text processing; a formatting and phototypesetting program, written
originally in PDP-11 assembler and then in barely-structured early
C by the late Joseph Ossanna, modeled after the earlier ROFF which
was in turn modeled after Multics' RUNOFF by Jerome Saltzer
(*that* name came from the expression "to run off a copy"). A
companion program, `nroff', formats output for terminals and
line printers.
In 1979, Brian Kernighan modified `troff' so that it could
drive phototypesetters other than the Graphic Systems CAT. His
paper describing that work ("A Typesetter-independent troff,"
AT&T CSTR #97) explains troff's durability. After discussing the
program's "obvious deficiencies --- a rebarbative input syntax,
mysterious and undocumented properties in some areas, and a
voracious appetite for computer resources" and noting the ugliness
and extreme hairiness of the code and internals, Kernighan
concludes:
None of these remarks should be taken as denigrating
Ossanna's accomplishment with TROFF. It has proven a
remarkably robust tool, taking unbelievable abuse from a
variety of preprocessors and being forced into uses that
were never conceived of in the original design, all with
considerable grace under fire.
The success of {{TeX}} and desktop publishing systems have
reduced `troff''s relative importance, but this tribute
perfectly captures the strengths that secured `troff' a place
in hacker folklore; indeed, it could be taken more generally as an
indication of those qualities of good programs that, in the long
run, hackers most admire.
:tron: [NRL, CMU; prob. fr. the movie `Tron'] v. To become
inaccessible except via email or `talk(1)', especially when
one is normally available via telephone or in person. Frequently
used in the past tense, as in: "Ran seems to have tronned on us
this week" or "Gee, Ran, glad you were able to un-tron
yourself". One may also speak of `tron mode'; compare
{spod}.
:unleaded: adj. Said of decaffeinated coffee, Diet Coke, and other
imitation {programming fluid}s. "Do you want regular or
unleaded?" Appears to be widespread among programmers associated
with the oil industry in Texas (and probably elsewhere). Usage:
silly, and probably unintelligible to the next generation of
hackers.
:warlording: [from the USENET group alt.fan.warlord] v. The act
of excoriating a bloated, ugly, or derivative {sig block}.
Common grounds for warlording include the presence of a signature
rendered in a {BUAF}, over-used or cliched {sig quote}s, ugly
{ASCII art}, or simply excessive size. The original `Warlord'
was a {BIFF}-like {newbie} c.1991 who featured in his sig a
particularly large and obnoxious ASCII graphic resembling the sword
of Conan the Barbarian in the 1981 John Milius movie; the group
name alt.fan.warlord was sarcasm, and the characteristic mode
of warlording is devastatingly sarcastic praise.
:wirewater: n. Syn. {programming fluid}. This melds the
mainstream slang adjective `wired' (stimulated, up, hyperactive)
with `firewater'.
:XON: /X'on/ n. Syn. {control-Q}.
:yellow wire: [IBM] n. Repair wires used when connectors
(especially ribbon connectors) got broken due to some schlemiel
pinching them, or to reconnect cut traces after the FE mistakenly
cut one. Compare {blue wire}, {purple wire}, {red wire}.
**************** New entries in 2.9.11 *****************
:AI: /A-I/ n. Abbreviation for `Artificial Intelligence', so
common that the full form is almost never written or spoken among
hackers.
:brochureware: n. Planned but non-existent product like
{vaporware}, but with the added implication that marketing is
actively selling and promoting it (they've printed brochures).
Brochureware is often deployed as a strategic weapon; the idea is
to con customers into not committing to an existing product of the
competition's. It is a safe bet that when a brochureware product
finally becomes real, it will be more expensive than and inferior
to the alternatives that had been available for years.
:con: [from SF fandom] n. A science-fiction convention. Not used
of other sorts of conventions, such as professional meetings. This
term, unlike many others of SF-fan slang, is widely recognized even
by hackers who aren't {fan}s. "We'd been corresponding on the
net for months, then we met face-to-face at a con." .
:CrApTeX: /krap'tekh/ [University of York, England] n. Term of
abuse used to describe TeX and LaTeX when they don't work (when
used by TeXhackers), or all the time (by everyone else). The
non-TeX enthusiasts generally dislike it because it is more verbose
than other formatters (e.g. troff) and because (particularly if the
standard Computer Modern fonts are used) it generates vast output
files. See {religious issues}, {{TeX}}.
:crayola books: n. The {rainbow series} of NCSC computer
security standards (see {Orange Book}). Usage: humorous and/or
disparaging.
:DAU: /dow/ [German Fidonet] n. German acronym for D"ummster
Anzunehmender User (stupidest imaginable user). From the
engin-eering-slang GAU for Gr"osster Anzunehmender Unfall (worst
foreseeable accident, esp. of a LNG tank farm plant or something
with similarly disastrous consequences).See {cretin}, {fool},
{loser} and {weasel}.
:decay: [from nuclear physics] n.,vi. An automatic conversion which
is applied to most array-valued expressions in {C}; they `decay
into' pointer-valued expressions pointing to the array's first
element. This term is borderline techspeak, but is not used in the
official standard for the language.
:DED: /D-E-D/ n. Dark-Emitting Diode (that is, a burned-out
LED). Compare {SED}, {LER}, {write-only memory}. In the
early 1970s both Signetics and Texas instruments released DED spec
sheets as {AFJ}s (suggested uses included "as a power-off
indicator").
:fan: n. Without qualification, indicates a fan of science
fiction, especially one who goes to {con}s and tends to hang out
with other fans. Many hackers are fans, so this term has been
imported from fannish slang; however, unlike much fannish slang it
is recognized by most non-fannish hackers. Among SF fans the
plural is correctly `fen', but this usage is not automatic to
hackers. "Laura reads the stuff occasionally but isn't really a
fan."
:faradize: /far'*-di:z/ [US Geological Survey] v. To start any
hyper-addictive process or trend, or to continue adding current to
such a trend. Telling one user about a new octo-tetris game you
compiled would be a faradizing act --- in two weeks you might find
your entire department playing the faradic game.
:farkled: /far'kld/ [DeVry Institute of Technology, Atlanta] adj.
Syn. {hosed}. Poss. owes something to Yiddish `farblondjet'.
:Infinite-Monkey Theorem: n. "If you put an {infinite} number
of monkeys at typewriters, eventually one will bash out the script
for Hamlet." (One may also hypothesize a small number of monkeys
and a very long period of time.) This theorem asserts nothing about
the intelligence of the one {random} monkey that eventually
comes up with the script (and note that the mob will also type out
all the possible *incorrect* versions of Hamlet). It may be
referred to semi-seriously when justifying a {brute force}
method; the implication is that, with enough resources thrown at
it, any technical challenge becomes a {one-banana problem}.
This theorem was first popularized by the classic SF short story
"Inflexible Logic" by Russell Maloney, many younger hackers
know it through a reference in Douglas Adams's `Hitchhiker's
Guide to the Galaxy'.
:leapfrog attack: n. Use of userid and password information
obtained illicitly from one host (e.g., downloading a file of
account IDs and passwords, tapping TELNET, etc.) to compromise
another host. Also, to TELNET through one or more hosts in order
to confuse a trace (a standard cracker procedure).
:lithium lick: n. [NeXT] n. Steve Jobs. Employees who have gotten
too much attention from their esteemed founder are said to have
`lithium lick' when they begin to show signs of Jobsian fervor and
repeat the most recent catch phrases in normal conversation --- for
example, "It just works, right out of the box!"
:locals, the: pl.n. The users on one's local network (as opposed, say,
to people one reaches via public Internet or UUCP connects). The
marked thing about this usage is how little it has to do with
real-space distance. "I have to do some tweaking on this mail
utility before releasing it to the locals."
:memory farts: n. The flatulent sounds that some DOS box BIOSes
(most notably AMI's) make when checking memory on bootup.
:mockingbird: n. Software that intercepts communications
(especially login transactions) between users and hosts and
provides system-like responses to the users while saving their
responses (especially account IDs and passwords). A special case
of {Trojan Horse}.
:monty: /mon'tee/ [US Geological Survey] n. A program with a
ludicrously complex user interface written to perform extremely
trivial tasks. An example would be a menu-driven, button clicking,
pulldown, pop-up windows program for listing directories. The
original monty was an infamous weather-reporting program, Monty the
Amazing Weather Man, written at the USGS. Monty had a
widget-packed X-window interface with over 200 buttons; and all
monty actually *did* was {FTP} files off the network.
:munge: /muhnj/ vt. 1. [derogatory] To imperfectly transform
information. 2. A comprehensive rewrite of a routine, data
structure or the whole program.
This term is often confused with {mung} and may derive from it,
or possibly vice-versa.
:nude: adj. Said of machines delivered without an operating system
(compare {bare metal}). "We ordered 50 systems, but they all
arrived nude, so we had to spend a an extra weekend with the
install-tapes." This usage is a recent innovation reflecting the
fact that most PC clones are now delivered with DOS or Microsoft
Windows pre-installed at the factory. Other kinds of hardware are
still normally delivered without OS, so this term is particular to
PC support groups.
:person of no account: [University of California at Santa Cruz] n.
Used when referring to a person with no {network address}, frequently
to forestall confusion. Most often as part of an introduction:
"This is Bill, a person of no account, but he used to be
bill@random.com". Compare {return from the dead}.
:phage: n. A program that modifies other programs or databases in
unauthorized ways; esp. one that propagates a {virus} or
{Trojan horse}. See also {worm}, {mockingbird}. The
analogy, of course, is with phage viruses in biology.
:rabbit job: [Cambridge] n. A batch job that does little, if any,
real work, but creates one or more copies of itself, breeding like
rabbits. Compare {wabbit}, {fork bomb}.
:Real Programmer: [indirectly, from the book `Real Men Don't
Eat Quiche'] n. A particular sub-variety of hacker: one possessed
of a flippant attitude toward complexity that is arrogant even when
justified by experience. The archetypal `Real Programmer' likes
to program on the {bare metal} and is very good at same,
remembers the binary opcodes for every machine he has ever
programmed, thinks that HLLs are sissy, and uses a debugger to edit
his code because full-screen editors are for wimps. Real
Programmers aren't satisfied with code that hasn't been {bum}med
into a state of {tense}ness just short of rupture. Real
Programmers never use comments or write documentation: "If it was
hard to write", says the Real Programmer, "it should be hard to
understand." Real Programmers can make machines do things that
were never in their spec sheets; in fact, they are seldom really
happy unless doing so. A Real Programmer's code can awe with its
fiendish brilliance, even as its crockishness appalls. Real
Programmers live on junk food and coffee, hang line-printer art on
their walls, and terrify the crap out of other programmers ---
because someday, somebody else might have to try to understand
their code in order to change it. Their successors generally
consider it a {Good Thing} that there aren't many Real
Programmers around any more. For a famous (and somewhat more
positive) portrait of a Real Programmer, see "{The Story
of Mel, a Real Programmer}" in {Appendix A}. The term itself
was popularized by a 1983 Datamation article "Real
Programmers Don't Use Pascal" by Ed Post, still circulating on
USENET and Internet in on-line form.
:return from the dead: v. To regain access to the net after a long
absence. Compare {person of no account}.
:scream and die: v. Syn. {cough and die}, but connotes that an
error message was printed or displayed before the program crashed.
:slack: n. 1. Space allocated to a disk file but not actually used
to store useful information. The techspeak equivalent is `internal
fragmentation'. 2. In the theology of the {Church of the
SubGenius}, a mystical substance or quality that is the
prerequisite of all human happiness.
Since UNIX files are stored compactly, except for the unavoidable
wastage in the last block or fragment, it might be said that "Unix
has no slack". See {ha ha only serious}.
:teledildonics: /tel`*-dil-do'-niks/ n. Sex in a computer
simulated virtual reality, esp. computer-mediated sexual
interaction between the {VR} presences of two humans. This
practice is not yet possible except in the rather limited form of
erotic conversation on {MUD}s and the like. The term, however,
is widely recognized in the VR community as a {ha ha only
serious} projection of things to come. "When we can sustain a
multi-sensory surround good enough for teledildonics, *then*
we'll know we're getting somewhere."
:time bomb: n. A subspecies of {logic bomb} that is triggered by
reaching some preset time, either once or periodically. There are
numerous legends about time bombs set up by programmers in their
employers' machines, to go off if the programmer is fired or laid
off and is not present to perform the appropriate suppressing
action periodically.
Interestingly, the only such incident for which we have been
pointed to documentary evidence took place in the Soviet Union in
1986! A disgruntled programmer at the Volga Automobile Plant
(where the Fiat clones called Ladas were manufactured) planted a
time bomb which, a week after he'd left on vacation, stopped the
entire main assembly line for a day. The case attracted lots of
attention in the Soviet Union because it was the first cracking
case to make it to court there. The perpetrator got 3 years in
jail.
:window shopping: [US Geological Survey] n. Among users of {WIMP
environment}s like {X} or the Macintosh, extended
experimentation with new window colors, fonts, and icon shapes.
This activity can take up hours of what might otherwise have been
productive working time. "I spent the afternoon window shopping
until I found the coolest shade of green for my active window
borders --- now they perfectly match my medium slate blue
background." Serious window shoppers will spend their days
with bitmap editors, creating new and different icons and
background patterns for all to see. Also: `window dressing', the
act of applying new fonts, colors, etc. See {fritterware},
compare {macdink}.
:wumpus: /wuhm'p*s/ n. The central monster (and, in many
versions, the name) of a famous family of very early computer games
called "Hunt The Wumpus", dating back at least to 1972 (several
years before {ADVENT}) on the Dartmouth Time-Sharing System.
The wumpus lived somewhere in a cave with the topology of an
dodecahedron's edge/vertex graph (later versions supported other
topologies, including an icosahedron and M"obius strip). The player
started somewhere at random in the cave with five `crooked
arrows'; these could be shot through up to three connected rooms,
and would kill the wumpus on a hit (later versions introduced
the wounded wumpus, which got very angry). Unfortunately for
players, the movement necessary to map the maze was made hazardous
not merely by the wumpus (which would eat you if you stepped on
him) but also by bottomless pits and colonies of super bats that would
pick you up and drop you at a random location (later versions added
`anaerobic termites' that ate arrows, bat migrations, and
earthquakes that randomly changed pit locations).
This game appears to have been the first to use a non-random
graph-structured map (as opposed to a rectangular grid like the
even older Star Trek games). In this respect, as in the
dungeon-like setting and its terse, amusing messages, it prefigured
{ADVENT} and {Zork} and was directly ancestral to both (Zork
acknowledged this heritage by including a super-bat colony).
Today, a port is distributed with SunOS and as freeware for the
Mac. A C emulation of the original Basic game is in circulation
as freeware on the net.
**************** New entries in 2.9.12 *****************
:ARMM: [acronym, `Automated Retroactive Minimal Moderation'] n. A
USENET robot created by Dick Depew of Munroe Falls, Ohio. It was
intended to automatically cancel posts from anonymous-posting
sites. Unfortunately, the robot's recognizer for anonymous
postings triggered on its own automatically-generated control
messages! Transformed by this stroke of programming ineptitude
into a monster of Frankensteinian proportions, it broke loose on
the night of March 31, 1993 and proceeded to spam
news.admin.policy with a recursive explosion of over 200
messages.
ARMM's bug produced a recursive {cascade} of messages each of which
mechanically added text to the ID and Subject and some other
headers of its parent. This produced a flood of messages in which
each header took up several screens and each message ID and subject
line got longer and longer and longer.
Reactions varied from amusememt to outrage. The pathological
messages crashed at least one mail system, and upset people paying
line charges for their USENET feeds. One poster described the ARMM
debacle as "instant USENET history" (instantly establishing the
term {despew}), and it has since been widely cited as a
cautionary example of the havoc the combination of good intentions
and incompetence can wreak on a network. Compare {Great Worm,
The}; {sorcerer's apprentice mode}. See also {software
laser}, {network meltdown}.
:ASCIIbetical order: /as'kee-be'-t*-kl or'dr/ adj.,n. Used to
indicate that data is sorted in ASCII collated order rather than
alphabetical order. This lexicon is sorted in something close to
ASCIIbetical order, but with case ignored and entries beginning
with non-alphabetic characters moved to the end.
:atomic: [from Gk. `atomos', indivisible] adj. Indivisible;
cannot be split up. For example, an instruction may be said to do
several things `atomically', i.e., all the things are done
immediately, and there is no chance of the instruction being
half-completed. Esp. used to convey that an operation cannot be
screwed up by interrupts. "This routine locks the file and
increments the file's semaphore atomically." This usage has none
of the connotations that `atomic' has in mainstream English (i.e.
of particles of matter, nuclear explosions etc.).
:Bloggs Family, the: n. An imaginary family consisting of Fred and
Mary Bloggs and their children. Used as a standard example in
knowledge representation to show the difference between extensional
and intensional objects. For example, every occurrence of "Fred
Bloggs" is the same unique person, whereas occurrences of
"person" may refer to different people. Members of the Bloggs
family have been known to pop up in bizarre places such as the DEC
Telephone Directory. Compare {Mbogo, Dr. Fred}.
:cookie jar: n. An area of memory set aside for storing {cookie}s.
Most commonly heard in the Atari ST community; many useful ST
programs record their presence by storing a distinctive {magic
number} in the jar. Programs can inquire after the presence or
otherwise of other programs by searching the contents of the jar.
:dec: /dek/ v. Common verbal shorthand for decrement, i.e.
`decrease by one' (one doesn't tend to see the sbbreviation in
writing or email). Especially used by assembly programmers, as many
assembly languages (including those for Intel chips) have a
`dec' mnemonic. Antonym: {inc}.
:evil and rude: adj. Both {evil} and {rude}, but this phrase
has the additional connotation that the rudeness was due to malice
rather than incompetence. Thus, for example: Microsoft's Windows
NT is evil because it's a competent implementation of a bad
design; it's rude because it's gratuitously incompatible with
UNIX in places where compatibility would have been as easy and
effective to do; but it's evil and rude because the
incompatiblities are apparently there not to fix design bugs in
UNIX but rather to lock hapless customers and developers into the
Microsoft way. Hackish evil and rude is close to the mainstream
sense of `evil'.
:external memory: n. A memo pad or written notes. "Hold on while
I write that to external memory". The analogy is with store or
DRAM versus nonvolatile disk storage on computers.
:FAQ: /F-A-Q/ or /fak/ [USENET] n. 1. A Frequently Asked Question.
2. A compendium of accumulated lore, posted periodically to
high-volume newsgroups in an attempt to forestall such questions.
Some people prefer the term `FAQ list' or `FAQL' /fa'kl/,
reserving `FAQ' for sense 1.
This lexicon itself serves as a good example of a collection of one
kind of lore, although it is far too big for a regular FAQ
posting. Examples: "What is the proper type of NULL?" and
"What's that funny name for the `#' character?" are both
Frequently Asked Questions. Several FAQ lists refer readers to
this file.
:FIXME: imp. A standard tag often put in C comments near a piece of
code that needs work. The point of doing this is so that a
`grep' or similar pattern-matching tool can find all such
places quickly.
FIXME: note this is common in {GNU} code.
Compare {XXX}.
:fnord: [from the `Illuminatus Trilogy'] n. 1. A word used in
email and news postings to tag utterances as surrealist mind-play
or humor, esp. in connection with {Discordianism} and elaborate
conspiracy theories. "I heard that David Koresh is sharing an
apartment in Argentina with Hitler. (Fnord.)", "Where can I fnord
get the Principia Discordia from?" 2. A metasyntactic variable,
commonly used by hackers with ties to {Discordianism} or the
{Church of the SubGenius}.
:frink: /frink/ v. The unknown ur-verb, fill in your own meaning.
Found esp. on the USENET newsgroup alt.fan.lemur, where it is
said that the lemurs know what `frink' means, but they aren't
telling. Compare {gorets}.
:gorets: /goh'rets/ n. The unknown ur-noun, fill in your own
meaning. Found esp. on the USENET newsgroup alt.gorets, which
seems to be a running contest to redefine the word by implication
in the funniest and most peculiar way, with the understanding that
no definition is ever final. [A correspondent from the Former
Soviet Union informs me that `gorets' is Russian for `mountain
dweller' --- ESR] Compare {frink}.
:grilf: // n. Girl-friend. Like {newsfroup} and {filk}, a
typo incarnated as a new word. Seems to have originated sometime
in 1992.
:hand cruft: [pun on `hand craft'] vt. See {cruft}, sense 3.
:hysterical reasons: (also `hysterical raisins') n. A variant on
the stock phrase "for historical reasons", it specifically
indicates that something must be done in some stupid way for
backwards compatibility, and moreover that the feature it must be
compatible with was the result of a bad design in the first place.
"All IBM PC video adapters have to support MDA text mode for
hysterical reasons." Compare {bug-for-bug compatible}.
:inc: /ink/ v. Common verbal shorthand for increment, i.e.
`increase by one' (one doesn't tend to see the sbbreviation in
writing or email). Especially used by assembly programmers, as many
assembly languages (including those for Intel chips) have an
`inc' mnemonic. Antonym: {dec}.
:Lubarsky's Law of Cybernetic Entomology: prov. "There is *always*
one more bug."
:mailbomb: (also mail bomb) [USENET] 1. v. To send, or urge
others to send, massive amounts of {email} to a single system or
person, as in retaliation for a perceived serious offense.
Mailbombing is itself widely regarded as a serious offense --- it
can disrupt email traffic or other facilities for innocent users on
the victim's system, and in extreme cases, even at upstream sites.
2. n. An automatic procedure with a similar effect. 3. n. The mail
sent.
:nagware: /nag'weir/ [USENET] n. The variety of {shareware}
that displays a large screen at the beginning or end reminding you
to register, typically requiring some sort of keystroke to continue
so that you can't use the software in batch mode. Compare
{crippleware}.
:not ready for prime time: adj. Usable, but only just so; not very
robust; for internal use only. Said of a program or device. Often
connotes that the thing will be made more solid {Real Soon
Now}. This term comes from the ensemble name of the original cast
of "Saturday Night Live", the "Not Ready for Prime Time
Players". It has extra flavor for hackers because of the special
(though now semi-obsolescent) meaning of {prime time}.
:ogg: /awg/ [CMU] v. 1. In the multi-player space combat game
Netrek, to execute kamikaze attacks against enemy ships which are
carrying armies or occupying strategic positions. Named during a
game in which one of the players repeatedly used the tactic while
playing Orion ship G, showing up in the player list as "Og".
This trick has been roundly denounced by those who would return to
the good old days when the tactic of dogfighting was dominant, but
as Sun Tzu wrote, "What is of supreme importance in war is to
attack the enemy's strategy." However, the traditional answer to
the newbie question "What does ogg mean?" is just "Pick up some
armies and I'll show you." 2. In other games, to forcefully
attack an opponent with the expectation that the resources expended
will be renewed faster than the opponent will be able to regain his
previous advantage. Taken more seriously as a tactic since it has
gained a simple name. 3. To do anything forcefully, possibly
without consideration of the drain on future resources. "I guess
I'd better go ogg the problem set that's due tomorrow." "Whoops!
I looked down at the map for a sec and almost ogged that oncoming
car."
:optimism: n. What a programmer is full of after fixing what is
presumably the last bug and just before actually discovering a next
last bug . Fred Brooks's book `The Mythical Man-Month' (See
`Brooks's Law'.) contains the following paragraph that describes
this extremely well:
All programmers are optimists. Perhaps this
modern sorcery especially attracts those who believe in happy
endings and fairy god-mothers. Perhaps the hundreds of nitty
frustrations drive away all but those who habitually focus on the
end goal. Perhaps it is merely that computers are young,
programmers are younger, and the young are always optimists. But
however the selection process works, the result is indisputable:
"This time it will surely run," or "I just found the last bug.".
See also {Lubarsky's Law of Cybernetic Entomology}.
:P-mail: n. Physical mail, as opposed to {email}. Synonymous
with {snail-mail}.
:PDL: 1. n. `Program Design Language'. Any of a large
class of formal and profoundly useless pseudo-languages in which
{management} forces one to design programs. {Management}
often expects it to be maintained in parallel with the code. See
also {{flowchart}}. 2. v. To design using a program design
language. "I've been pdling so long my eyes won't focus beyond 2
feet." 3. n. `Page Description Language'. Refers to any language
which is used to control a graphics device, usually a laserprinter.
The most common example is, of course, Adobe's {{PostScript}}
language, but there are many others, such as Xerox InterPress,
etc.
:religion of CHI: n. /ki:/ [Case Western Reserve University] n.
Yet another hackish parody religion (see also {Church of the
SubGenius}, {Discordianism}). In the mid-70s, the canonical
"Introduction to Programming" courses at CWRU were taught in
Algol, and student exercises were punched on cards and run on a
Univac 1108 system using a homebrew operating system named CHI.
The religion had no doctrines and but one ritual: whenever the
worshipper noted that a digital clock read 11:08, he or she would
recite the phrase "It is 11:08; ABS, ALPHABETIC, ARCSIN, ARCCOS,
ARCTAN." The last five words were the first five functions in the
appropriate chapter of the Algol manual; note the special
pronunciations /obz/ and /ark'sin/ rather than the more common
/abz/ and /ark'si:n/. Using an alarm clock to warn of 11:08's
arrival was {considered harmful}.
:screaming tty: [UNIX] n. A terminal line which is either
disconnected or connected to a powered-off terminal which, due to
misconfiguration, misimplementation, or simple bad luck, acts as a
source of an infinite number of random characters. A screaming tty
or two can seriously degrade the performance of a vanilla UNIX
system; the arriving "characters" are treated as userid/password
pairs and tested as such. The UNIX password encryption algorithm
is designed to be computationally intensive in order to foil
brute-force crack attacks, so though none of the logins succeeds;
the overhead of rejecting them all can be substantial.
:sharchive: [UNIX and USENET; from /bin/sh archive] n. A {flatten}ed
representation of a set of one or more files, with the unique
property that it can be unflattened (the original files restored) by
feeding it through a standard UNIX shell; thus, a sharchive can be
distributed to anyone running UNIX, and no special unpacking software is
required. Sharchives are also intriguing in that they are
typically created by shell scripts; the script that produces
sharchives is thus a script which produces self-unpacking scripts,
which may themselves contain scripts. (The downsides of sharchives
are that they are an ideal venue for {Trojan horse} attacks and that,
for recipients not running UNIX, no simple un-sharchiving program is
possible; sharchives can and do make use of arbitrarily-powerful
shell features.)
:Share and enjoy!: imp. 1. Commonly found at the end of software
release announcements and {README file}s, this phrase indicates
allegience to the hacker ethic of free information sharing (see
{hacker ethic, the}, sense 1). 2. The motto of the Sirius
Cybernetics Corporation (the ultimate gaggle of incompetent
{suit}s) in Douglas Adams's `Hitch Hiker's Guide to the
Galaxy'. The irony of using this as a cultural recognition signal
appeals to freeware hackers.
:shovelware: n. Extra software dumped onto a CD-ROM or tape to fill
up the remaining space on the medium after the software distribution
it's intended to carry, but not integrated with the distribution.
:smoke: 1. vi. To {crash}, blow up, usually spectacularly. "The
new version smoked, just like the last one." Used for both hardware
(where it often describes an actual physical event), and software
(where it's merely colorful). 2. vi. [from automotive slang] To be
conspicuously fast. "That processor really smokes."
:software laser: n. A laser works by bouncing photons back and
forth between two mirrors, one totally reflective and one partially
reflective. If the lasing material (usually a crystal) has the
right properties, photons scattering off the atoms in the crystal
will excite cascades of more photons, all in lockstep. Eventually
the beam will escape through the partially-reflective mirror. One
kind of {sorcerer's apprentice mode} involving {bounce message}s
can produce closely analogous results, with a {cascade} of
messages escaping to flood nearby systems. By mid-1993 there had
been at least two publicized incidents of this kind.
:spelling flame: [USENET] n. A posting ostentatiously correcting a
previous article's spelling as a way of casting scorn on the point
the article was trying to make, instead of actually responding to
that point (compare {dictionary flame}). Of course, people who
are more than usually slovenly spellers are prone to think
*any* correction is a spelling flame.
:splash screen: [Mac] n. Syn. {banner}, sense 3.
:spoiler: [USENET: sci.math and rec.puzzles] n. Any remark
which telegraphs the solution of a problem or puzzle, thus denying
the reader the pleasure of working out the correct answer (see also
{interesting}). Readily forms compounds like `total spoiler',
`quasi-spoiler' and even `pseudo-spoiler'.
:spoo: n. Variant of {spooge}, sense 1.
:Sturgeon's Law: prov. "Ninety percent of everything is crap". Derived
from a quote by science fiction author Theodore Sturgeon, who once
said, "Sure, 90% of science fiction is crud. That's because 90% of
everything is crud." Oddly, when Sturgeon's Law is cited, the
final word is almost invariably changed to `crap'. Compare
{Hanlon's Razor}. Though this maxim originated in SF fandom,
most hackers recognize it and are all too aware of its truth.
:syntactic salt: n. The opposite of {syntactic sugar}, a feature
designed to make it harder to write bad code. Specifically,
syntactic salt is a hoop the programmer must jump through just to
prove that he knows what's going on, rather than to express a
program action. Some programmers consider required type
declarations to be syntactic salt. A requirement to write
`end if', `end while', `end do', etc. to terminate
the last block controlled by a control construct (as opposed to
just `end') would definitely be syntactic salt. Syntactic salt
is like the real thing in that it tends to raise hackers' blood
pressures in an unhealthy way..
:treeware: n. Printouts, books, and other information media made
from pulped dead trees. Compare {tree-killer}, see
{documentation}.
:ventilator card: n. Syn. {lace card}.
:virtual shredder: n. The jargonic equivalent of the {bit bucket}
at shops using IBM's VM/CMS operating system. VM/CMS officially
supports a whole bestiary of virtual card readers, virtual
printers, and other phantom devices; these are used to supply some
of the same capabilities UNIX gets from pipes and I/O redirection.
:YAFIYGI: /yaf'ee-y:-gee/ adj. [coined in response to WYSIWYG]
Describes the command-oriented ed/vi/nroff/TeX style of word
processing or other user interface, the opposite of {WYSIWYG}.
Stands for "You asked for it, you got it", because what you
actually asked for is often not apparent until long after it is too
late to do anything about it. Used to denote perversity ("Real
Programmers use YAFIYGI tools...and *like* it!") or, less
often, a necessary tradeoff ("Only a YAFIYGI tool can have full
programmable flexibility in its interface.").
:YKYBHTL: An abbreviation of `You Know You've Been Hacking Too Long'
established on the USENET group alt.folklore.computers during
extended discussion of the indicated entry in the Jargon File.
************** Changed entries in 2.9.7 ***************
:Chernobyl packet: /cher-noh'b*l pak'*t/ n. A network packet that
induces a {broadcast storm} and/or {network meltdown},
in memory of the April 1986 nuclear accident at Chernobyl
in Ukraine. The typical scenario involves an IP Ethernet datagram
that passes through a gateway with both source and destination
Ether and IP address set as the respective broadcast addresses for
the subnetworks being gated between. Compare {Christmas tree
packet}.
:delint: /dee-lint/ v. To modify code to remove problems detected
when {lint}ing. Confusingly, this process is also referred to
as `linting' code.
:epoch: [UNIX: prob. from astronomical timekeeping] n. The time
and date corresponding to 0 in an operating system's clock and
timestamp values. Under most UNIX versions the epoch is 00:00:00
GMT, January 1, 1970; under VMS, it's 00:00:00 GMT of November 17,
1858 (base date of the U.S. Naval Observatory's ephemerides).
System time is measured in seconds or {tick}s past the epoch.
Weird problems may ensue when the clock wraps around (see {wrap
around}), which is not necessarily a rare event; on systems
counting 10 ticks per second, a signed 32-bit count of ticks is
good only for 6.8 years. The 1-tick-per-second clock of UNIX is
good only until January 18, 2038, assuming at least some software
continues to consider it signed and that word lengths don't
increase by then. See also {wall time}.
:exec: /eg-zek'/ vt., n. 1. [UNIX: from `execute'] Synonym for
{chain}, derives from the `exec(2)' call. 2. [from
`executive'] obs. The command interpreter for an {OS} (see
{shell}); term esp. used around mainframes, and prob.
derived from UNIVAC's archaic EXEC 2 and EXEC 8 operating systems.
3. At IBM and VM/CMS shops, the equivalent of a shell command file
(among VM/CMS users).
The mainstream `exec' as an abbreviation for (human) executive is
*not* used. To a hacker, an `exec' is a always a program,
never a person.
:kremvax: /krem-vaks/ [from the then large number of {USENET}
{VAXen} with names of the form foovax] n. Originally, a
fictitious USENET site at the Kremlin, announced on April 1, 1984
in a posting ostensibly originated there by Soviet leader
Konstantin Chernenko. The posting was actually forged by Piet
Beertema as an April Fool's joke. Other fictitious sites mentioned
in the hoax were moskvax and {kgbvax}. This was probably
the funniest of the many April Fool's forgeries perpetrated on
USENET (which has negligible security against them), because the
notion that USENET might ever penetrate the Iron Curtain seemed so
totally absurd at the time.
In fact, it was only six years later that the first genuine site in
Moscow, demos.su, joined USENET. Some readers needed
convincing that the postings from it weren't just another prank.
Vadim Antonov, senior programmer at Demos and the major poster from
there up to mid-1991, was quite aware of all this, referred to it
frequently in his own postings, and at one point twitted some
credulous readers by blandly asserting that he *was* a
hoax!
Eventually he even arranged to have the domain's gateway site
*named* kremvax, thus neatly turning fiction into truth
and demonstrating that the hackish sense of humor transcends
cultural barriers. [Mr. Antonov also contributed the
Russian-language material for this lexicon. --- ESR]
In an even more ironic historical footnote, kremvax became an
electronic center of the anti-communist resistance during the
bungled hard-line coup of August 1991. During those three days the
Soviet UUCP network centered on kremvax became the only
trustworthy news source for many places within the USSR. Though
the sysops were concentrating on internal communications,
cross-border postings included immediate transliterations of Boris
Yeltsin's decrees condemning the coup and eyewitness reports of the
demonstrations in Moscow's streets. In those hours, years of
speculation that totalitarianism would prove unable to maintain its
grip on politically-loaded information in the age of computer
networking were proved devastatingly accurate --- and the original
kremvax joke became a reality as Yeltsin and the new Russian
revolutionaries of `glasnost' and `perestroika' made
kremvax one of the timeliest means of their outreach to the
West.
:PDL: 1. n. `Program Design Language'. Any of a large
class of formal and profoundly useless pseudo-languages in which
{management} forces one to design programs. {Management}
often expects it to be maintained in parallel with the code. See
also {{flowchart}}. 2. v. To design using a program design
language. "I've been pdling so long my eyes won't focus beyond 2
feet." 3. n. `Page Description Language'. Refers to any language
which is used to control a graphics device, usually a laserprinter.
The most common example is, of course, Adobe's {{PostScript}}
language, but there are many others, such as Xerox InterPress,
etc.
:ping: [from the TCP/IP acronym `Packet INternet Groper', prob.
originally contrived to match the submariners' term for a sonar
pulse] 1. n. Slang term for a small network message (ICMP ECHO)
sent by a computer to check for the presence and aliveness of
another. Occasionally used as a phone greeting. See {ACK},
also {ENQ}. 2. vt. To verify the presence of. 3. vt. To get
the attention of. From the UNIX command `ping(1)' that sends
an ICMP ECHO packet to another host. 4. vt. To send a message to
all members of a {mailing list} requesting an {ACK} (in order
to verify that everybody's addresses are reachable). "We haven't
heard much of anything from Geoff, but he did respond with an ACK
both times I pinged jargon-friends." 5. n. A quantum packet of
happiness. People who are very happy tend to exude pings;
furthermore, one can intentionally create pings and aim them at a
needy party (e.g., a depressed person). This sense of ping may
appear as an exclamation; "Ping!" (I'm happy; I am emitting a
quantum of happiness; I have been struck by a quantum of
happiness). The form "pingfulness", which is used to describe
people who exude pings, also occurs. (In the standard abuse of
language, "pingfulness" can also be used as an exclamation, in
which case it's a much stronger exclamation than just "ping"!).
Oppose {blargh}.
The funniest use of `ping' to date was described in January 1991 by
Steve Hayman on the USENET group comp.sys.next. He was trying
to isolate a faulty cable segment on a TCP/IP Ethernet hooked up to
a NeXT machine, and got tired of having to run back to his console
after each cabling tweak to see if the ping packets were getting
through. So he used the sound-recording feature on the NeXT, then
wrote a script that repeatedly invoked `ping(8)', listened for
an echo, and played back the recording on each returned packet.
Result? A program that caused the machine to repeat, over and
over, "Ping ... ping ... ping ..." as long as the
network was up. He turned the volume to maximum, ferreted through
the building with one ear cocked, and found a faulty tee connector
in no time.
:plumbing: [UNIX] n. Term used for {shell} code, so called
because of the prevalence of `pipelines' that feed the output of
one program to the input of another. Under UNIX, user utilities
can often be implemented or at least prototyped by a suitable
collection of pipelines and temp-file grinding encapsulated in a
shell script; this is much less effort than writing C every time,
and the capability is considered one of UNIX's major winning
features. A few other OSs such as IBM's VM/CMS support similar
facilities. Esp. used in the construction `hairy plumbing'
(see {hairy}). "You can kluge together a basic spell-checker
out of `sort(1)', `comm(1)', and `tr(1)' with a
little plumbing." See also {tee}.
:randomness: n. 1. An inexplicable misfeature; gratuitous
inelegance. 2. A {hack} or {crock} that depends on a complex
combination of coincidences (or, possibly, the combination upon
which the crock depends for its accidental failure to malfunction).
"This hack can output characters 40--57 by putting the character
in the four-bit accumulator field of an XCT and then extracting
six bits --- the low 2 bits of the XCT opcode are the right
thing." "What randomness!" 3. Of people, synonymous with
`flakiness'. The connotation is that the person so described is
behaving weirdly, incompetently, or inappropriately for reasons
which are (a) too tiresome to bother inquiring into, (b) are
probably as inscrutable as quantum phenomena anyway, and (c) are
likely to pass with time. "Maybe he has a real complaint, or maybe
it's just randomness. See if he calls back."
:toto: /toh'toh/ n. This is reported to be the default scratch
file name among French-speaking programmers --- in other words, a
francophone {foo}. It is reported that the phonetic mutations
"titi", "tata", and "tutu" canonically follow `toto',
analogously to {bar}, {baz} and {quux} in English.
************** Changed entries in 2.9.8 ***************
:forked: [UNIX; prob. influenced by a mainstream expletive] adj.
Terminally slow, or dead. Originated when one system was slowed to
a snail's pace by an inadvertent {fork bomb}.
:hacker: [originally, someone who makes furniture with an axe] n.
1. A person who enjoys exploring the details of programmable
systems and how to stretch their capabilities, as opposed to most
users, who prefer to learn only the minimum necessary. 2. One who
programs enthusiastically (even obsessively) or who enjoys
programming rather than just theorizing about programming. 3. A
person capable of appreciating {hack value}. 4. A person who is
good at programming quickly. 5. An expert at a particular program,
or one who frequently does work using it or on it; as in `a UNIX
hacker'. (Definitions 1 through 5 are correlated, and people who
fit them congregate.) 6. An expert or enthusiast of any kind. One
might be an astronomy hacker, for example. 7. One who enjoys the
intellectual challenge of creatively overcoming or circumventing
limitations. 8. [deprecated] A malicious meddler who tries to
discover sensitive information by poking around. Hence `password
hacker', `network hacker'. The correct term is {cracker}.
The term `hacker' also tends to connote membership in the global
community defined by the net (see {network, the} and
{Internet address}). It also implies that the person described
is seen to subscribe to some version of the hacker ethic (see
{hacker ethic, the}.
It is better to be described as a hacker by others than to describe
oneself that way. Hackers consider themselves something of an
elite (a meritocracy based on ability), though one to which new
members are gladly welcome. There is thus a certain ego
satisfaction to be had in identifying yourself as a hacker (but if
you claim to be one and are not, you'll quickly be labeled
{bogus}). See also {wannabee}.
:Pascal:: n. An Algol-descended language designed by Niklaus Wirth
on the CDC 6600 around 1967--68 as an instructional tool for
elementary programming. This language, designed primarily to keep
students from shooting themselves in the foot and thus extremely
restrictive from a general-purpose-programming point of view, was
later promoted as a general-purpose tool and, in fact, became the
ancestor of a large family of languages including Modula-2 and
{{Ada}} (see also {bondage-and-discipline language}). The
hackish point of view on Pascal was probably best summed up by a
devastating (and, in its deadpan way, screamingly funny) 1981 paper
by Brian Kernighan (of {K&R} fame) entitled "Why Pascal is
Not My Favorite Programming Language", which was turned down by the
technical journals but circulated widely via photocopies. It was
eventually published in "Comparing and Assessing Programming
Languages", edited by Alan Feuer and Narain Gehani (Prentice-Hall,
1984). Part of his discussion is worth repeating here, because its
criticisms are still apposite to Pascal itself after ten years of
improvement and could also stand as an indictment of many other
bondage-and-discipline languages. At the end of a summary of the
case against Pascal, Kernighan wrote:
9. There is no escape
This last point is perhaps the most important. The language is
inadequate but circumscribed, because there is no way to escape its
limitations. There are no casts to disable the type-checking when
necessary. There is no way to replace the defective run-time
environment with a sensible one, unless one controls the compiler
that defines the "standard procedures". The language is closed.
People who use Pascal for serious programming fall into a fatal
trap. Because the language is impotent, it must be extended. But
each group extends Pascal in its own direction, to make it look
like whatever language they really want. Extensions for separate
compilation, FORTRAN-like COMMON, string data types, internal
static variables, initialization, octal numbers, bit operators,
etc., all add to the utility of the language for one group but
destroy its portability to others.
I feel that it is a mistake to use Pascal for anything much beyond
its original target. In its pure form, Pascal is a toy language,
suitable for teaching but not for real programming.
Pascal has since been almost entirely displaced (by {C}) from the
niches it had acquired in serious applications and systems
programming, but retains some popularity as a hobbyist language in
the MS-DOS and Macintosh worlds.
:Purple Book: n. 1. The `System V Interface Definition'. The
covers of the first editions were an amazingly nauseating shade of
off-lavender. 2. Syn. {Wizard Book}. See also {{book
titles}}.
:Wizard Book: n. Hal Abelson's, Jerry Sussman's and Julie Sussman's
`Structure and Interpretation of Computer Programs' (MIT
Press, 1984; ISBN 0-262-01077-1), an excellent computer science text
used in introductory courses at MIT. So called because of the
wizard on the jacket. One of the {bible}s of the LISP/Scheme
world. Also, less commonly, known as the {Purple Book}.
************** Changed entries in 2.9.9 ***************
:ASCII:: [American Standard Code for Information Interchange]
/as'kee/ n. The predominant character set encoding of present-day
computers. he modern version uses 7 bits for each character,
whereas most earlier codes (including an early version of ASCII)
used fewer. This change allowed the inclusion of lowercase letters
--- a major {win} --- but it did not provide for accented
letters or any other letterforms not used in English (such as the
German sharp-S
or the ae-ligature
which is a letter in, for example, Norwegian). It could be worse,
though. It could be much worse. See {{EBCDIC}} to understand how.
Computers are much pickier and less flexible about spelling than
humans; thus, hackers need to be very precise when talking about
characters, and have developed a considerable amount of verbal
shorthand for them. Every character has one or more names --- some
formal, some concise, some silly. Common jargon names for ASCII
characters are collected here. See also individual entries for
{bang}, {excl}, {open}, {ques}, {semi}, {shriek},
{splat}, {twiddle}, and {Yu-Shiang Whole Fish}.
This list derives from revision 2.3 of the USENET ASCII
pronunciation guide. Single characters are listed in ASCII order;
character pairs are sorted in by first member. For each character,
common names are given in rough order of popularity, followed by
names that are reported but rarely seen; official ANSI/CCITT names
are surrounded by brokets: <>. Square brackets mark the
particularly silly names introduced by {INTERCAL}. The
abbreviations "l/r" and "o/c" stand for left/right and
"open/close" respectively. Ordinary parentheticals provide some
usage information.
!
Common: {bang}; pling; excl; shriek; <exclamation mark>.
Rare: factorial; exclam; smash; cuss; boing; yell; wow; hey;
wham; eureka; [spark-spot]; soldier.
"
Common: double quote; quote. Rare: literal mark;
double-glitch; <quotation marks>; <dieresis>; dirk;
[rabbit-ears]; double prime.
#
Common: number sign; pound; pound sign; hash; sharp; {crunch};
hex; [mesh]. Rare: grid; cross-hatch; oc-to-thorpe; flash;
<square>, pig-pen; tic-tac-toe; scratchmark; thud; thump;
{splat}.
$
Common: dollar; <dollar sign>. Rare: currency symbol; buck;
cash; string (from BASIC); escape (when used as the echo of
ASCII ESC); ding; cache; [big money].
%
Common: percent; <percent sign>; mod; grapes. Rare:
[double-oh-seven].
&
Common: <ampersand>; amper; and. Rare: address (from C);
reference (from C++); andpersand; bitand; background (from
`sh(1)'); pretzel; amp. [INTERCAL called this `ampersand';
what could be sillier?]
'
Common: single quote; quote; <apostrophe>. Rare: prime;
glitch; tick; irk; pop; [spark]; <closing single quotation
mark>; <acute accent>.
( )
Common: l/r paren; l/r parenthesis; left/right; o-pen-/-close;
par-en/the-sis; o/c paren; o/c par-en-the-sis; l/r
paren-the-sis; l/r ba-na-na. Rare: so/al-ready;
lparen/rparen; <opening/closing parenthesis>; o/c round
bracket, l/r round bracket, [wax/wane];
par-en-this-ey/un-par-en-this-ey; l/r ear.
*
Common: star; [{splat}]; <asterisk>. Rare: wildcard; gear;
dingle; mult; spider; aster; times; twinkle; glob (see
{glob}); {Nathan Hale}.
+
Common: <plus>; add. Rare: cross; [intersection].
,
Common: <comma>. Rare: <cedilla>; [tail].
-
Common: dash; <hyphen>; <minus>. Rare: [worm]; option; dak;
bithorpe.
.
Common: dot; point; <period>; <decimal point>. Rare: radix
point; full stop; [spot].
/
Common: slash; stroke; <slant>; forward slash. Rare:
diagonal; solidus; over; slak; virgule; [slat].
:
Common: <colon>. Rare: dots; [two-spot].
;
Common: <semicolon>; semi. Rare: weenie; [hybrid],
pit-thwong.
< >
Common: <less/great-er than>; bra/ket; l/r angle; l/r angle
bracket; l/r broket. Rare: from/{into, towards}; read
from/write to; suck/blow; comes-from/gozinta; in/out;
crunch/zap (all from UNIX); [angle/right angle].
=
Common: <equals>; gets; takes. Rare: quadrathorpe;
[half-mesh].
?
Common: query; <question mark>; {ques}. Rare: whatmark;
[what]; wildchar; huh; hook; buttonhook; hunchback.
@
Common: at sign; at; strudel. Rare: each; vortex; whorl;
[whirlpool]; cyclone; snail; ape; cat; rose; cabbage;
<commercial at>.
V
Rare: [book].
[ ]
Common: l/r square bracket; l/r bracket; <opening/closing
brack-et>; brack-et/un-brack-et. Rare: square-/-un-square; [U
turn/U turn back].
\
Common: backslash; escape (from C/UNIX); reverse slash; slosh;
backslant; backwhack. Rare: bash; <reverse slant>; reversed
virgule; [backslat].
^
Common: hat; control; uparrow; caret; <circumflex>. Rare:
chevron; [shark (or shark-fin)]; to the (`to the power of');
fang; pointer (in Pascal).
_
Common: <underline>; underscore; underbar; under. Rare:
score; backarrow; skid; [flatworm].
`
Common: backquote; left quote; left single quote; open quote;
<grave accent>; grave. Rare: backprime; [backspark];
unapostrophe; birk; blugle; back tick; back glitch; push;
<opening single quotation mark>; quasiquote.
{ }
Common: o/c brace; l/r brace; l/r squiggly; l/r squiggly
bracket/brace; l/r curly bracket/brace; <opening/closing
brace>. Rare: brace/unbrace; curly/un-curly; leftit/rytit;
l/r squirrelly; [embrace/bracelet].
|
Common: bar; or; or-bar; v-bar; pipe; vertical bar. Rare:
<vertical line>; gozinta; thru; pipesinta (last three from
UNIX); [spike].
~
Common: <tilde>; squiggle; {twiddle}; not. Rare: approx;
wiggle; swung dash; enyay; [sqiggle (sic)].
The pronunciation of `#' as `pound' is common in the U.S.
but a bad idea; {{Commonwealth Hackish}} has its own, rather more
apposite use of `pound sign' (confusingly, on British keyboards
the pound graphic
happens to replace `#'; thus Britishers sometimes
call `#' on a U.S.-ASCII keyboard `pound', compounding the
American error). The U.S. usage derives from an old-fashioned
commercial practice of using a `#' suffix to tag pound weights
on bills of lading. The character is usually pronounced `hash'
outside the U.S.
The `uparrow' name for circumflex and `leftarrow' name for
underline are historical relics from archaic ASCII (the 1963
version), which had these graphics in those character positions
rather than the modern punctuation characters.
The `swung dash' or `approximation' sign is not quite the same
as tilde in typeset material
but the ASCII tilde serves for both (compare {angle
brackets}).
Some other common usages cause odd overlaps. The `#',
`$', `>', and `&' characters, for example, are all
pronounced "hex" in different communities because various
assemblers use them as a prefix tag for hexadecimal constants (in
particular, `#' in many assembler-programming cultures,
`$' in the 6502 world, `>' at Texas Instruments, and
`&' on the BBC Micro, Sinclair, and some Z80 machines). See
also {splat}.
The inability of ASCII text to correctly represent any of the
world's other major languages makes the designers' choice of 7 bits
look more and more like a serious {misfeature} as the use of
international networks continues to increase (see {software
rot}). Hardware and software from the U.S. still tends to embody
the assumption that ASCII is the universal character set and that
characters have 7 bits; this is a a major irritant to people who
want to use a character set suited to their own languages.
Perversely, though, efforts to solve this problem by proliferating
`national' character sets produce an evolutionary pressure to use
a *smaller* subset common to all those in use.
:baz: /baz/ n. 1. The third {metasyntactic variable} "Suppose we
have three functions: FOO, BAR, and BAZ. FOO calls BAR, which
calls BAZ...." (See also {fum}) 2. interj. A term of mild
annoyance. In this usage the term is often drawn out for 2 or 3
seconds, producing an effect not unlike the bleating of a sheep;
/baaaaaaz/. 3. Occasionally appended to {foo} to produce
`foobaz'.
Earlier versions of this lexicon derived `baz' as a Stanford
corruption of {bar}. However, Pete Samson (compiler of the
{TMRC} lexicon) reports it was already current when he joined TMRC
in 1958. He says "It came from `Pogo'. Albert the Alligator,
when vexed or outraged, would shout `Bazz Fazz!' or `Rowrbazzle!'
The club layout was said to model the (mythical) New England
counties of Rowrfolk and Bassex (Rowrbazzle mingled with
(Norfolk/Suffolk/Middlesex/Essex)."
:bounce: v. 1. [perhaps by analogy to a bouncing check] An
electronic mail message that is undeliverable and returns an error
notification to the sender is said to `bounce'. See also
{bounce message}. 2. [Stanford] To play volleyball. The
now-demolished {D. C. Power Lab} building used by the Stanford
AI Lab in the 1970s had a volleyball court on the front lawn. From
5 P.M. to 7 P.M. was the scheduled maintenance time for the
computer, so every afternoon at 5 would come over the intercom the
cry: "Now hear this: bounce, bounce!", followed by Brian McCune
loudly bouncing a volleyball on the floor outside the offices of
known volleyballers. 3. To engage in sexual intercourse; prob.
from the expression `bouncing the mattress', but influenced by
Roo's psychosexually loaded "Try bouncing me, Tigger!" from the
"Winnie-the-Pooh" books. Compare {boink}. 4. To casually
reboot a system in order to clear up a transient problem. Reported
primarily among {VMS} users. 5. [VM/CMS programmers]
*Automatic* warm-start of a machine after an error. "I
logged on this morning and found it had bounced 7 times during the
night" 6. [IBM] To {power cycle} a peripheral in order to reset
it.
:bug: n. An unwanted and unintended property of a program or piece
of hardware, esp. one that causes it to malfunction. Antonym of
{feature}. Examples: "There's a bug in the editor: it writes
things out backwards." "The system crashed because of a hardware
bug." "Fred is a winner, but he has a few bugs" (i.e., Fred is
a good guy, but he has a few personality problems).
Historical note: Admiral Grace Hopper (an early computing pioneer
better known for inventing {COBOL}) liked to tell a story in
which a technician solved a persistent {glitch} in the Harvard
Mark II machine by pulling an actual insect out from between the
contacts of one of its relays, and she subsequently promulgated
{bug} in its hackish sense as a joke about the incident (though,
as she was careful to admit, she was not there when it happened).
For many years the logbook associated with the incident and the
actual bug in question (a moth) sat in a display case at the Naval
Surface Warfare Center (NSWC). The entire story, with a picture of
the logbook and the moth taped into it, is recorded in the
`Annals of the History of Computing', Vol. 3, No. 3
(July 1981), pp. 285--286.
The text of the log entry (from September 9, 1947), reads "1545
Relay #70 Panel F (moth) in relay. First actual case of bug being
found". This wording establishes that the term was already
in use at the time in its current specific sense --- and Hopper
herself reports that the term `bug' was regularly applied to
problems in radar electronics during WWII.
Indeed, the use of `bug' to mean an industrial defect was already
established in Thomas Edison's time, and a more specific and rather
modern use can be found in an electrical handbook from 1896
(`Hawkin's New Catechism of Electricity', Theo. Audel & Co.)
which says: "The term `bug' is used to a limited extent to
designate any fault or trouble in the connections or working of
electric apparatus." It further notes that the term is "said to
have originated in quadruplex telegraphy and have been transferred
to all electric apparatus."
The latter observation may explain a common folk etymology of the
term; that it came from telephone company usage, in which "bugs in
a telephone cable" were blamed for noisy lines. Though this
derivation seems to be mistaken, it may well be a distorted memory
of a joke first current among *telegraph* operators more than
a century ago!
Actually, use of `bug' in the general sense of a disruptive event
goes back to Shakespeare! In the first edition of Samuel Johnson's
dictionary one meaning of `bug' is "A frightful object; a
walking spectre"; this is traced to `bugbear', a Welsh term for
a variety of mythological monster which (to complete the circle)
has recently been reintroduced into the popular lexicon through
fantasy role-playing games.
In any case, in jargon the word almost never refers to insects.
Here is a plausible conversation that never actually happened:
"There is a bug in this ant farm!"
"What do you mean? I don't see any ants in it."
"That's the bug."
[There has been a widespread myth that the original bug was moved
to the Smithsonian, and an earlier version of this entry so
asserted. A correspondent who thought to check discovered that the
bug was not there. While investigating this in late 1990, your
editor discovered that the NSWC still had the bug, but had
unsuccessfully tried to get the Smithsonian to accept it --- and
that the present curator of their History of American Technology
Museum didn't know this and agreed that it would make a worthwhile
exhibit. It was moved to the Smithsonian in mid-1991. Thus, the
process of investigating the original-computer-bug bug fixed it in
an entirely unexpected way, by making the myth true! --- ESR]
[1992 update: the plot thickens! A usually reliable source reports
having seen The Bug at the Smithsonian in 1978. I am unable to
reconcile the conflicting histories I have been offered, and merely
report this fact here. --- ESR.]
:compress: [UNIX] vt. When used without a qualifier, generally
refers to {crunch}ing of a file using a particular
C implementation of compression by James A. Woods et al. and
widely circulated via {USENET}; use of {crunch} itself in
this sense is rare among UNIX hackers. Specifically, compress is
built around the Lempel-Ziv-Welch algorithm as described in "A
Technique for High Performance Data Compression", Terry A. Welch,
`IEEE Computer', vol. 17, no. 6 (June 1984), pp. 8--19.
:copybroke: /ko'pee-brohk/ adj. 1. [play on `copyright'] Used
to describe an instance of a copy-protected program that has been
`broken'; that is, a copy with the copy-protection scheme
disabled. Syn. {copywronged}. 2. Copy-protected software
which is unusable because of some bit-rot or bug that has confused
the anti-piracy check. See also {copy protection}.
:cracker: n. One who breaks security on a system. Coined ca. 1985
by hackers in defense against journalistic misuse of {hacker}
(q.v., sense 8). An earlier attempt to establish `worm' in this
sense around 1981--82 on USENET was largely a failure.
Both these neologisms reflected a strong revulsion against the
theft and vandalism perpetrated by cracking rings. While it is
expected that any real hacker will have done some playful cracking
and knows many of the basic techniques, anyone past {larval
stage} is expected to have outgrown the desire to do so.
Thus, there is far less overlap between hackerdom and crackerdom
than the {mundane} reader misled by sensationalistic journalism
might expect. Crackers tend to gather in small, tight-knit, very
secretive groups that have little overlap with the huge, open
poly-culture this lexicon describes; though crackers often like to
describe *themselves* as hackers, most true hackers consider
them a separate and lower form of life.
Ethical considerations aside, hackers figure that anyone who can't
imagine a more interesting way to play with their computers than
breaking into someone else's has to be pretty {losing}. Some
other reasons crackers are looked down on are discussed in the
entries on {cracking} and {phreaking}. See also
{samurai}, {dark-side hacker}, and {hacker ethic,
the}.
:cruft: /kruhft/ [back-formation from {crufty}] 1. n. An
unpleasant substance. The dust that gathers under your bed is
cruft; the TMRC Dictionary correctly noted that attacking it with a
broom only produces more. 2. n. The results of shoddy
construction. 3. vt. [from `hand cruft', pun on `hand craft']
To write assembler code for something normally (and better) done by
a compiler (see {hand-hacking}). 4. n. Excess; superfluous
junk; used esp. of redundant or superseded code.
This term is one of the oldest in the jargon and no one is sure of
its etymology, but it is suggestive that there is a Cruft Hall at
Harvard University which is part of the old physics building; it's
said to have been the physics department's radar lab during WWII.
To this day (early 1993) the windows appear to be full of random
techno-junk. MIT or Lincoln Labs people may well have coined the
term as a knock on the competition.
:DDT: /D-D-T/ n. 1. Generic term for a program that assists in
debugging other programs by showing individual machine instructions
in a readable symbolic form and letting the user change them. In
this sense the term DDT is now archaic, having been widely
displaced by `debugger' or names of individual programs like
`adb', `sdb', `dbx', or `gdb'. 2. [ITS] Under
MIT's fabled {{ITS}} operating system, DDT (running under the alias
HACTRN) was also used as the {shell} or top level command
language used to execute other programs. 3. Any one of several
specific DDTs (sense 1) supported on early DEC hardware. The DEC
PDP-10 Reference Handbook (1969) contained a footnote on the first
page of the documentation for DDT that illuminates the origin of
the term:
Historical footnote: DDT was developed at MIT for the PDP-1
computer in 1961. At that time DDT stood for "DEC Debugging
Tape". Since then, the idea of an on-line debugging program has
propagated throughout the computer industry. DDT programs are now
available for all DEC computers. Since media other than tape are
now frequently used, the more descriptive name "Dynamic Debugging
Technique" has been adopted, retaining the DDT abbreviation.
Confusion between DDT-10 and another well known pesticide,
dichloro-diphenyl-trichloroethane (C14-H9-Cl5) should be minimal
since each attacks a different, and apparently mutually exclusive,
class of bugs.
Sadly, this quotation was removed from later editions of the
handbook after the {suit}s took over and DEC became much more
`businesslike'.
The history above is known to many old-time hackers. But there's
more: Peter Samson, compiler of the original {TMRC} lexicon,
reports that he named `DDT' after a similar tool on the TX-0
computer, the direct ancestor of the PDP-1 built at MIT's Lincoln
Lab in 1957. The debugger on that ground-breaking machine (the
first transistorized computer) rejoiced in the name FLIT
(FLexowriter Interrogation Tape).
:dread high-bit disease: n. A condition endemic to PRIME (a.k.a.
PR1ME) minicomputers that results in all the characters having
their high (0x80) bit ON rather than OFF. This of course makes
transporting files to other systems much more difficult, not to
mention talking to true 8-bit devices. Folklore had it that PRIME
adopted the reversed-8-bit convention in order to save 25 cents per
serial line per machine; PRIME old-timers, on the other hand, claim
they inherited the disease from Honeywell via customer NASA's
compatibility requirements and struggled heroicly to cure it.
Whoever was responsible, this probably qualifies as one of the
most {cretinous} design tradeoffs ever made. See {meta bit}.
A few other machines have exhibited similar brain damage.
:FM: n. *Not* `Frequency Modulation' but rather an
abbreviation for `Fucking Manual', the back-formation from
{RTFM}. Used to refer to the manual itself in the {RTFM}.
"Have you seen the Networking FM lately?"
:foo: /foo/ 1. interj. Term of disgust. 2. Used very generally
as a sample name for absolutely anything, esp. programs and files
(esp. scratch files). 3. First on the standard list of
{metasyntactic variable}s used in syntax examples. See also
{bar}, {baz}, {qux}, {quux}, {corge}, {grault},
{garply}, {waldo}, {fred}, {plugh}, {xyzzy},
{thud}.
The etymology of hackish `foo' is obscure. When used in
connection with `bar' it is generally traced to the WWII-era Army
slang acronym FUBAR (`Fucked Up Beyond All Recognition'), later
bowdlerized to {foobar}. (See also {FUBAR}).
However, the use of the word `foo' itself has more complicated
antecedents, including a long history in comic strips and cartoons.
The old "Smokey Stover" comic strips by Bill Holman often
included the word `FOO', in particular on license plates of cars;
allegedly, `FOO' and `BAR' also occurred in Walt Kelly's
"Pogo" strips. In the 1938 cartoon "The Daffy Doc", a very
early version of Daffy Duck holds up a sign saying "SILENCE IS
FOO!"; oddly, this seems to refer to some approving or positive
affirmative use of foo. It has been suggested that this might be
related to the Chinese word `fu' (sometimes transliterated
`foo'), which can mean "happiness" when spoken with the proper
tone (the lion-dog guardians flanking the steps of many Chinese
restaurants are properly called "fu dogs").
Earlier versions of this entry suggested the possibility that
hacker usage actually sprang from `FOO, Lampoons and Parody',
the title of a comic book first issued in September 1958, a joint
project of Charles and Robert Crumb. Though Robert Crumb (then in
his mid-teens) later became one of the most important and
influential artists in underground comics, this venture was hardly
a success; indeed, the brothers later burned most of the existing
copies in disgust. The title FOO was featured in large letters on
the front cover. However, very few copies of this comic actually
circulated, and students of Crumb's `oeuvre' have established
that this title was a reference to the earlier Smokey Stover
comics.
An old-time member reports that in the 1959 `Dictionary of the
TMRC Language', compiled at {TMRC} there was an entry that went
something like this:
FOO: The first syllable of the sacred chant phrase "FOO MANE PADME
HUM." Our first obligation is to keep the foo counters turning.
For more about the legendary foo counters, see {TMRC}. Almost
the entire staff of what became the MIT AI LAB was involved with
TMRC, and probably picked the word up there.
Very probably, hackish `foo' had no single origin and derives
through all these channels from Yiddish `feh' and/or English
`fooey'.
:fortune cookie: [WAITS, via UNIX] n. A random quote, item of
trivia, joke, or maxim printed to the user's tty at login time or
(less commonly) at logout time. Items from this lexicon have often
been used as fortune cookies. See {cookie file}.
:frob: /frob/ 1. n. [MIT] The {TMRC} definition was "FROB = a
protruding arm or trunnion"; by metaphoric extension, a `frob'
is any random small thing; an object that you can comfortably hold
in one hand; something you can frob (sense 2). See {frobnitz}.
2. vt. Abbreviated form of {frobnicate}. 3. [from the {MUD}
world] A command on some MUDs that changes a player's experience
level (this can be used to make wizards); also, to request
{wizard} privileges on the `professional courtesy' grounds
that one is a wizard elsewhere. The command is actually
`frobnicate' but is universally abbreviated to the shorter
form.
:frobnitz: /frob'nits/, plural `frobnitzem' /frob'nit-zm/ or
`frob-ni' /frob'-ni:/ [TMRC] n. An unspecified physical object, a
widget. Also refers to electronic black boxes. This rare form is
usually abbreviated to `frotz', or more commonly to {frob}.
Also used are `frobnule' (/frob'n[y]ool/) and `frobule'
(/frob'yool/). Starting perhaps in 1979, `frobozz'
/fr*-boz'/ (plural: `frobbotzim' /fr*-bot'zm/) has also
become very popular, largely through its exposure as a name via
{Zork}. These variants can also be applied to nonphysical
objects, such as data structures.
Pete Samson, compiler of the original {TMRC} lexicon, adds,
"Under the TMRC [railroad] layout were many storage boxes, managed
(in 1958) by David R. Sawyer. Several had fanciful designations
written on them, such as `Frobnitz Coil Oil'. Perhaps DRS intended
Frobnitz to be a proper name, but the name was quickly taken for
the thing". This was almost certainly the origin of the
term.
:gumby: /guhm'bee/ [from a class of Monty Python characters,
poss. with some influence from the 1960s claymation character] n.
An act of minor but conspicuous stupidity, often in `gumby
maneuver' or `pull a gumby'.
:hairy: adj. 1. Annoyingly complicated. "{DWIM} is incredibly
hairy." 2. Incomprehensible. "{DWIM} is incredibly hairy."
3. Of people, high-powered, authoritative, rare, expert, and/or
incomprehensible. Hard to explain except in context: "He knows
this hairy lawyer who says there's nothing to worry about." See
also {hirsute}.
A well-known result in topology called the Brouwer Fixed-Point
Theorem states that any continuous transformation of a surface into
itself has at least one fixed point. Mathematically literate
hackers tend to associate the term `hairy' with the informal
version of this theorem; "You can't comb a hairy ball smooth."
The adjective `long-haired' is well-attested to have been in
slang use among scientists and engineers during the early 1950s; it
was equivalent to modern `hairy' senses 1 and 2, and was very
likely ancestral to the hackish use. In fact the noun
`long-hair' was at the time used to describe a person satisfying
sense 3. Both senses probably passed out of use when long hair
was adopted as a signature trait by the 1960s counterculture,
leaving hackish `hairy' as a sort of stunted mutant relic.
:kluge: /klooj/ [from the German `klug', clever] 1. n. A Rube
Goldberg (or Heath Robinson) device, whether in hardware or
software. (A long-ago `Datamation' article by Jackson Granholme
said: "An ill-assorted collection of poorly matching parts,
forming a distressing whole.") 2. n. A clever programming trick
intended to solve a particular nasty case in an expedient, if not
clear, manner. Often used to repair bugs. Often involves
{ad-hockery} and verges on being a {crock}. In fact, the
TMRC Dictionary defined `kludge' as "a crock that works". 3. n.
Something that works for the wrong reason. 4. vt. To insert a
kluge into a program. "I've kluged this routine to get around
that weird bug, but there's probably a better way." 5. [WPI] n. A
feature that is implemented in a {rude} manner.
Nowadays this term is often encountered in the variant spelling
`kludge'. Reports from {old fart}s are consistent that
`kluge' was the original spelling, reported around computers as
far back as the mid-1950s and, at that time, used exclusively of
*hardware* kluges. In 1947, the `New York Folklore
Quarterly' reported a classic shaggy-dog story `Murgatroyd the
Kluge Maker' then current in the Armed Forces, in which a `kluge'
was a complex and puzzling artifact with a trivial function. Other
sources report that `kluge' was common Navy slang in the WWII era
for any piece of electronics that worked well on shore but
consistently failed at sea.
However, there is reason to believe this slang use may be a decade
older. Several respondents have connected it to the brand name of
a device called a "Kluge paper feeder" dating back at least to
1935, an adjunct to mechanical printing presses. The Kluge feeder
was designed before small, cheap electric motors and control
electronics; it relied on a fiendishly complex assortment of cams,
belts, and linkages to both power and synchronize all its
operations from one motive driveshaft. It was accordingly
tempermental, subject to frequent breakdowns, and devilishly
difficult to repair --- but oh, so clever! One traditional
folk etymology of `kluge' makes it the name of a design engineer;
in fact, `Kluge' is a surname in German, and the designer of the
Kluge feeder may well have been the man behind this myth.
{TMRC} and the MIT hacker culture of the early '60s seems to
have developed in a milieu that remembered and still used some WII
military slang (see also {foobar}). It seems likely that
`kluge' came to MIT via alumni of the many military electronics
projects that had been located in Cambridge (many in MIT's
venerable Building 20, in which {TMRC} is also located) during
the war.
The variant `kludge' was apparently popularized by the
{Datamation} article mentioned above; it was titled "How
to Design a Kludge" (February 1962, pp. 30, 31). Some people
who encountered the word first in print or on-line jumped to the
reasonable but incorrect conclusion that the word should be
pronounced /kluhj/ (rhyming with `sludge'). The result of this
tangled history is a mess; in 1993, many (perhaps even most)
hackers pronounce the word correctly as /klooj/ but spell it
incorrectly as `kludge' (compare the pronunciation drift of
{mung}). Some observers consider this appropriate in view of
its meaning.
:meta bit: n. The top bit of an 8-bit character, which is on in
character values 128--255. Also called {high bit}, {alt bit},
or {hobbit}. Some terminals and consoles (see {space-cadet
keyboard}) have a META shift key. Others (including,
*mirabile dictu*, keyboards on IBM PC-class machines) have an
ALT key. See also {bucky bits}.
Historical note: although in modern usage shaped by a universe of
8-bit bytes the meta bit is invariably hex 80 (octal 0200), things
were different on earlier machines with 36-bit words and 9-bit
bytes. The MIT and Stanford keyboards (see {space-cadet
keyboard}) generated hex 100 (octal 400) from their meta keys.
:microtape: /mi:'kroh-tayp/ n. Occasionally used to mean a
DECtape, as opposed to a {macrotape}. A DECtape is a small
reel, about 4 inches in diameter, of magnetic tape about an inch
wide. Unlike drivers for today's {macrotape}s, microtape
drivers allow random access to the data, and therefore could be
used to support file systems and even for swapping (this was
generally done purely for {hack value}, as they were far too
slow for practical use). In their heyday they were used in pretty
much the same ways one would now use a floppy disk: as a small,
portable way to save and transport files and programs. Apparently
the term `microtape' was actually the official term used within
DEC for these tapes until someone coined the word `DECtape',
which, of course, sounded sexier to the {marketroid}s; another
version of the story holds that someone discovered a conflict with
another company's `microtape' trademark.
:mode: n. A general state, usually used with an adjective
describing the state. Use of the word `mode' rather than
`state' implies that the state is extended over time, and
probably also that some activity characteristic of that state is
being carried out. "No time to hack; I'm in thesis mode." In its
jargon sense, `mode' is most often attributed to people, though
it is sometimes applied to programs and inanimate objects. In
particular, see {hack mode}, {day mode}, {night mode},
{demo mode}, {fireworks mode}, and {yoyo mode}; also
{talk mode}.
One also often hears the verbs `enable' and `disable' used in
connection with jargon modes. Thus, for example, a sillier way of
saying "I'm going to crash" is "I'm going to enable crash mode
now". One might also hear a request to "disable flame mode,
please".
In a usage much closer to techspeak, a mode is a special state
that certain user interfaces must pass into in order to perform
certain functions. For example, in order to insert characters into a
document in the UNIX editor `vi', one must type the "i" key,
which invokes the "Insert" command. The effect of this command
is to put vi into "insert mode", in which typing the "i" key
has a quite different effect (to wit, it inserts an "i" into the
document). One must then hit another special key, "ESC", in
order to leave "insert mode". Nowadays, moded interfaces are
generally considered {losing} but survive in quite a few
widely used tools built in less enlightened times.
:mudhead: n. Commonly used to refer to a {MUD} player who eats,
sleeps, and breathes MUD. Mudheads have been known to fail their
degrees, drop out, etc., with the consolation, however, that they
made wizard level. When encountered in person, on a MUD, or in a
chat system, all a mudhead will talk about is three topics: the
tactic, character, or wizard that is supposedly always unfairly
stopping him/her from becoming a wizard or beating a favorite MUD;
why the specific game he/she has experience with is so much better
than any other, and the MUD he or she is writing or going to write
because his/her design ideas are so much better than in any
existing MUD. See also {wannabee}.
:mumble: interj. 1. Said when the correct response is too
complicated to enunciate, or the speaker has not thought it out.
Often prefaces a longer answer, or indicates a general reluctance
to get into a long discussion. "Don't you think that we could
improve LISP performance by using a hybrid reference-count
transaction garbage collector, if the cache is big enough and there
are some extra cache bits for the microcode to use?" "Well,
mumble ... I'll have to think about it." 2. Sometimes used as
an expression of disagreement. "I think we should buy a
{VAX}." "Mumble!" Common variant: `mumble frotz' (see
{frotz}; interestingly, one does not say `mumble frobnitz'
even though `frotz' is short for `frobnitz'). 3. Yet another
{metasyntactic variable}, like {foo}. 4. When used as a question
("Mumble?") means "I didn't understand you". 5. Sometimes used
in `public' contexts on-line as a placefiller for things one is
barred from giving details about. For example, a poster with
pre-released hardware in his machine might say "Yup, my machine
now has an extra 16M of memory, thanks to the card I'm testing for
Mumbleco." 6. A conversational wild card used to designate
something one doesn't want to bother spelling out, but which can be
{glark}ed from context. Compare {blurgle}. 7. [XEROX PARC]
A colloquialism used to suggest that further discussion would be
fruitless.
:mumble: interj. 1. Said when the correct response is too
complicated to enunciate, or the speaker has not thought it out.
Often prefaces a longer answer, or indicates a general reluctance
to get into a long discussion. "Don't you think that we could
improve LISP performance by using a hybrid reference-count
transaction garbage collector, if the cache is big enough and there
are some extra cache bits for the microcode to use?" "Well,
mumble ... I'll have to think about it." 2. Sometimes used as
an expression of disagreement. "I think we should buy a
{VAX}." "Mumble!" Common variant: `mumble frotz' (see
{frotz}; interestingly, one does not say `mumble frobnitz'
even though `frotz' is short for `frobnitz'). 3. Yet another
{metasyntactic variable}, like {foo}. 4. When used as a question
("Mumble?") means "I didn't understand you". 5. Sometimes used
in `public' contexts on-line as a placefiller for things one is
barred from giving details about. For example, a poster with
pre-released hardware in his machine might say "Yup, my machine
now has an extra 16M of memory, thanks to the card I'm testing for
Mumbleco." 6. A conversational wild card used to designate
something one doesn't want to bother spelling out, but which can be
{glark}ed from context. Compare {blurgle}. 7. [XEROX PARC]
A colloquialism used to suggest that further discussion would be
fruitless.
:mung: /muhng/ [in 1960 at MIT, `Mash Until No Good'; sometime
after that the derivation from the {{recursive acronym}} `Mung
Until No Good' became standard] vt. 1. To make changes to a file,
esp. large-scale and irrevocable changes. See {BLT}. 2. To
destroy, usually accidentally, occasionally maliciously. The
system only mungs things maliciously; this is a consequence of
{Finagle's Law}. See {scribble}, {mangle}, {trash},
{nuke}. Reports from {USENET} suggest that the pronunciation
/muhnj/ is now usual in speech, but the spelling `mung' is
still common in program comments (compare the widespread confusion
over the proper spelling of {kluge}). 3. The kind of beans of
which the sprouts are used in Chinese food. (That's their real
name! Mung beans! Really!)
Like many early hacker terms, this one seems to have originated at
{TMRC}; it was already in use there in 1958. Peter Samson
(compiler of the original TMRC lexicon) thinks it may originally
have been onomatopoeic for the sound of a relay spring (contact)
being twanged.
:NP-: /N-P/ pref. Extremely. Used to modify adjectives
describing a level or quality of difficulty; the connotation is
often `more so than it should be' (NP-complete problems all seem
to be very hard, but so far no one has found a good a priori
reason that they should be.) "Coding a BitBlt implementation to
perform correctly in every case is NP-annoying." This is
generalized from the computer-science terms `NP-hard' and
`NP-complete'. NP is the set of Nondeterministic-Polynomial
algorithms, those that can be completed by a nondeterministic
Turing machine in an amount of time that is a polynomial function
of the size of the input; a solution for one NP-complete problem
would solve all the others. Note, however, that the NP- prefix is,
from a complexity theorist's point of view, the wrong part of
`NP-complete' to connote extreme difficulty; it is the completeness,
not the NP-ness, that puts any problem it describes in the
`hard' category.
:quantifiers:: In techspeak and jargon, the standard metric
prefixes used in the SI (Syst`eme International) conventions for
scientific measurement have dual uses. With units of time or
things that come in powers of 10, such as money, they retain their
usual meanings of multiplication by powers of 1000 = 10^3.
But when used with bytes or other things that naturally come in
powers of 2, they usually denote multiplication by powers of
1024 = 2^(10).
Here are the SI magnifying prefixes, along with the corresponding
binary interpretations in common use:
prefix decimal binary
kilo- 1000^1 1024^1 = 2^10 = 1,024
mega- 1000^2 1024^2 = 2^20 = 1,048,576
giga- 1000^3 1024^3 = 2^30 = 1,073,741,824
tera- 1000^4 1024^4 = 2^40 = 1,099,511,627,776
peta- 1000^5 1024^5 = 2^50 = 1,125,899,906,842,624
exa- 1000^6 1024^6 = 2^60 = 1,152,921,504,606,846,976
zetta- 1000^7 1024^7 = 2^70 = 1,180,591,620,717,411,303,424
yotta- 1000^8 1024^8 = 2^80 = 1,208,925,819,614,629,174,706,176
Here are the SI fractional prefixes:
*prefix decimal jargon usage*
milli- 1000^-1 (seldom used in jargon)
micro- 1000^-2 small or human-scale (see {micro-})
nano- 1000^-3 even smaller (see {nano-})
pico- 1000^-4 even smaller yet (see {pico-})
femto- 1000^-5 (not used in jargon---yet)
atto- 1000^-6 (not used in jargon---yet)
zepto- 1000^-7 (not used in jargon---yet)
yocto- 1000^-8 (not used in jargon---yet)
The prefixes zetta-, yotta-, zepto-, and yocto- have been included
in these tables purely for completeness and giggle value; they were
adopted in 1990 by the `19th Conference Generale des Poids et
Mesures'. The binary peta- and exa- loadings, though well
established, are not in jargon use either --- yet. The prefix
milli-, denoting multiplication by 1000^(-1), has always
been rare in jargon (there is, however, a standard joke about the
`millihelen' --- notionally, the amount of beauty required to
launch one ship). See the entries on {micro-}, {pico-}, and
{nano-} for more information on connotative jargon use of these
terms. `Femto' and `atto' (which, interestingly, derive not
from Greek but from Danish) have not yet acquired jargon loadings,
though it is easy to predict what those will be once computing
technology enters the required realms of magnitude (however, see
{attoparsec}).
There are, of course, some standard unit prefixes for powers of
10. In the following table, the `prefix' column is the
international standard suffix for the appropriate power of ten; the
`binary' column lists jargon abbreviations and words for the
corresponding power of 2. The B-suffixed forms are commonly used
for byte quantities; the words `meg' and `gig' are nouns that may
(but do not always) pluralize with `s'.
prefix decimal binary pronunciation
kilo- k K, KB, /kay/
mega- M M, MB, meg /meg/
giga- G G, GB, gig /gig/,/jig/
Confusingly, hackers often use K or M as though they were suffix or
numeric multipliers rather than a prefix; thus "2K dollars", "2M
of disk space". This is also true (though less commonly) of G.
Note that the formal SI metric prefix for 1000 is `k'; some use
this strictly, reserving `K' for multiplication by 1024 (KB is
`kilobytes').
K, M, and G used alone refer to quantities of bytes; thus, 64G is
64 gigabytes and `a K' is a kilobyte (compare mainstream use of
`a G' as short for `a grand', that is, $1000). Whether one
pronounces `gig' with hard or soft `g' depends on what one thinks
the proper pronunciation of `giga-' is.
Confusing 1000 and 1024 (or other powers of 2 and 10 close in
magnitude) --- for example, describing a memory in units of
500K or 524K instead of 512K --- is a sure sign of the
{marketroid}.
One example of this: it is common to refer to the capacity of the
3.5" {microfloppies} now ubiquitous in the PC world as `1.44 MB'
In fact, this is a completely {bogus} number. The correct size
is 1440 KB, that is, 1440 * 1024 = 1474560 bytes. So the `mega'
in `1.44 MB' is compounded of two `kilos', one of which is 1024
and the other of which is 1000. The correct number of megabytes would
of course be 1440 / 1024 = 1.40625. Alas, this fine point is probably
lost on the world forever.
[1993 update: hacker Morgan Burke has proposed, to general
approval on USENET, the following additional prefixes:
groucho
10^-30
harpo
10^-27
harpi
10^27
grouchi
10^30
We observe that this would leave the prefixes zeppo-, gummo-, and
chico- available for future expansion. Sadly, there is little
immediate prospect that Mr. Burke's eminently sensible proposal
will be ratified.]
:rococo: adj. {Baroque} in the extreme. Used to imply that a
program has become so encrusted with the software equivalent of
gold leaf and curlicues that they have completely swamped the
underlying design. Called after the later and more extreme forms
of Baroque architecture and decoration prevalent during the
mid-1700s in Europe. Alan Perlis said: "Every program eventually
becomes rococo, and then rubble." Compare {critical
mass}.
:RTFM: /R-T-F-M/ [UNIX] imp. Acronym for `Read The Fucking
Manual'. 1. Used by {guru}s to brush off questions they
consider trivial or annoying. Compare {Don't do that, then!}
2. Used when reporting a problem to indicate that you aren't just
asking out of {randomness}. "No, I can't figure out how to
interface UNIX to my toaster, and yes, I have RTFM." Unlike
sense 1, this use is considered polite. See also {FM},
{RTFAQ}, {RTFB}, {RTFS}, {RTM}, all of which mutated
from RTFM, and compare {UTSL}.
:rude: [WPI] adj. 1. (of a program) Badly written. 2. Functionally
poor, e.g., a program that is very difficult to use because of
gratuitously poor (random?) design decisions. Oppose {cuspy}.
3. Anything that manipulates a shared resource without regard for
its other users in such a way as to cause a (non-fatal) problem is
said to be `rude'. Examples: programs that change tty modes
without resetting them on exit, or windowing programs that keep
forcing themselves to the top of the window stack. Compare
{all-elbows}.
:saga: [WPI] n. A cuspy but bogus raving story about N random
broken people.
Here is a classic example of the saga form, as told by Guy L.
Steele:
Jon L. White (login name JONL) and I (GLS) were office mates at MIT
for many years. One April, we both flew from Boston to California
for a week on research business, to consult face-to-face with some
people at Stanford, particularly our mutual friend Richard P.
Gabriel (RPG; see {Gabriel}).
RPG picked us up at the San Francisco airport and drove us back to
Palo Alto (going {logical} south on route 101, parallel to {El
Camino Bignum}). Palo Alto is adjacent to Stanford University and
about 40 miles south of San Francisco. We ate at The Good Earth, a
`health food' restaurant, very popular, the sort whose milkshakes
all contain honey and protein powder. JONL ordered such a shake
--- the waitress claimed the flavor of the day was "lalaberry". I
still have no idea what that might be, but it became a running
joke. It was the color of raspberry, and JONL said it tasted
rather bitter. I ate a better tostada there than I have ever had
in a Mexican restaurant.
After this we went to the local Uncle Gaylord's Old Fashioned Ice
Cream Parlor. They make ice cream fresh daily, in a variety of
intriguing flavors. It's a chain, and they have a slogan: "If you
don't live near an Uncle Gaylord's --- MOVE!" Also, Uncle Gaylord
(a real person) wages a constant battle to force big-name ice cream
makers to print their ingredients on the package (like air and
plastic and other non-natural garbage). JONL and I had first
discovered Uncle Gaylord's the previous August, when we had flown
to a computer-science conference in Berkeley, California, the first
time either of us had been on the West Coast. When not in the
conference sessions, we had spent our time wandering the length of
Telegraph Avenue, which (like Harvard Square in Cambridge) was
lined with picturesque street vendors and interesting little
shops. On that street we discovered Uncle Gaylord's Berkeley
store. The ice cream there was very good. During that August
visit JONL went absolutely bananas (so to speak) over one
particular flavor, ginger honey.
Therefore, after eating at The Good Earth --- indeed, after every
lunch and dinner and before bed during our April visit --- a trip
to Uncle Gaylord's (the one in Palo Alto) was mandatory. We had
arrived on a Wednesday, and by Thursday evening we had been there
at least four times. Each time, JONL would get ginger honey ice
cream, and proclaim to all bystanders that "Ginger was the spice
that drove the Europeans mad! That's why they sought a route to
the East! They used it to preserve their otherwise off-taste
meat." After the third or fourth repetition RPG and I were getting
a little tired of this spiel, and began to paraphrase him: "Wow!
Ginger! The spice that makes rotten meat taste good!" "Say! Why
don't we find some dog that's been run over and sat in the sun for
a week and put some *ginger* on it for dinner?!" "Right! With a
lalaberry shake!" And so on. This failed to faze JONL; he took it
in good humor, as long as we kept returning to Uncle Gaylord's. He
loves ginger honey ice cream.
Now RPG and his then-wife KBT (Kathy Tracy) were putting us up
(putting up with us?) in their home for our visit, so to thank them
JONL and I took them out to a nice French restaurant of their
choosing. I unadventurously chose the filet mignon, and KBT had je
ne sais quoi du jour, but RPG and JONL had lapin (rabbit).
(Waitress: "Oui, we have fresh rabbit, fresh today." RPG: "Well,
JONL, I guess we won't need any *ginger*!")
We finished the meal late, about 11 P.M., which is 2 A.M Boston
time, so JONL and I were rather droopy. But it wasn't yet
midnight. Off to Uncle Gaylord's!
Now the French restaurant was in Redwood City, north of Palo Alto.
In leaving Redwood City, we somehow got onto route 101 going north
instead of south. JONL and I wouldn't have known the difference
had RPG not mentioned it. We still knew very little of the local
geography. I did figure out, however, that we were headed in the
direction of Berkeley, and half-jokingly suggested that we continue
north and go to Uncle Gaylord's in Berkeley.
RPG said "Fine!" and we drove on for a while and talked. I was
drowsy, and JONL actually dropped off to sleep for 5 minutes. When
he awoke, RPG said, "Gee, JONL, you must have slept all the way
over the bridge!", referring to the one spanning San Francisco
Bay. Just then we came to a sign that said "University Avenue". I
mumbled something about working our way over to Telegraph Avenue;
RPG said "Right!" and maneuvered some more. Eventually we pulled
up in front of an Uncle Gaylord's.
Now, I hadn't really been paying attention because I was so sleepy,
and I didn't really understand what was happening until RPG let me
in on it a few moments later, but I was just alert enough to notice
that we had somehow come to the Palo Alto Uncle Gaylord's after
all.
JONL noticed the resemblance to the Palo Alto store, but hadn't
caught on. (The place is lit with red and yellow lights at night,
and looks much different from the way it does in daylight.) He
said, "This isn't the Uncle Gaylord's I went to in Berkeley! It
looked like a barn! But this place looks *just like* the one back
in Palo Alto!"
RPG deadpanned, "Well, this is the one *I* always come to when I'm
in Berkeley. They've got two in San Francisco, too. Remember,
they're a chain."
JONL accepted this bit of wisdom. And he was not totally ignorant
--- he knew perfectly well that University Avenue was in Berkeley,
not far from Telegraph Avenue. What he didn't know was that there
is a completely different University Avenue in Palo Alto.
JONL went up to the counter and asked for ginger honey. The guy at
the counter asked whether JONL would like to taste it first,
evidently their standard procedure with that flavor, as not too
many people like it.
JONL said, "I'm sure I like it. Just give me a cone." The guy
behind the counter insisted that JONL try just a taste first.
"Some people think it tastes like soap." JONL insisted, "Look, I
*love* ginger. I eat Chinese food. I eat raw ginger roots. I
already went through this hassle with the guy back in Palo Alto. I
*know* I like that flavor!"
At the words "back in Palo Alto" the guy behind the counter got a
very strange look on his face, but said nothing. KBT caught his
eye and winked. Through my stupor I still hadn't quite grasped
what was going on, and thought RPG was rolling on the floor
laughing and clutching his stomach just because JONL had launched
into his spiel ("makes rotten meat a dish for princes") for the
forty-third time. At this point, RPG clued me in fully.
RPG, KBT, and I retreated to a table, trying to stifle our
chuckles. JONL remained at the counter, talking about ice cream
with the guy b.t.c., comparing Uncle Gaylord's to other ice cream
shops and generally having a good old time.
At length the g.b.t.c. said, "How's the ginger honey?" JONL said,
"Fine! I wonder what exactly is in it?" Now Uncle Gaylord
publishes all his recipes and even teaches classes on how to make
his ice cream at home. So the g.b.t.c. got out the recipe, and he
and JONL pored over it for a while. But the g.b.t.c. could contain
his curiosity no longer, and asked again, "You really like that
stuff, huh?" JONL said, "Yeah, I've been eating it constantly back
in Palo Alto for the past two days. In fact, I think this batch is
about as good as the cones I got back in Palo Alto!"
G.b.t.c. looked him straight in the eye and said, "You're *in* Palo
Alto!"
JONL turned slowly around, and saw the three of us collapse in a
fit of giggles. He clapped a hand to his forehead and exclaimed,
"I've been hacked!"
[My spies on the West Coast inform me that there is a close relative
of the raspberry found out there called an `ollalieberry' --- ESR]
[Ironic footnote: it appears that the {meme} about ginger vs.
rotting meat may be an urban legend. It's not borne out by an
examination of medieval recipes or period purchase records for
spices, and appears full-blown in the works of Samuel Pegge, a
gourmand and notorious flake case who originated numerous food
myths. --- ESR]
:security through obscurity: alt. `security by obscurity' n. A
term applied by hackers to most OS vendors' favorite way of coping
with security holes --- namely, ignoring them and not documenting
them and trusting that nobody will find out about them and that
people who do find out about them won't exploit them. This
"strategy" never works for long and occasionally sets the world
up for debacles like the {RTM} worm of 1988 (see {Great Worm,
the}), but once the brief moments of panic created by such events
subside most vendors are all too willing to turn over and go back
to sleep. After all, actually fixing the bugs would siphon off the
resources needed to implement the next user-interface frill on
marketing's wish list --- and besides, if they started fixing
security bugs customers might begin to *expect* it and imagine
that their warranties of merchantability gave them some sort of
*right* to a system with fewer holes in it than a shotgunned
Swiss cheese, and *then* where would we be?
Historical note: There are conflicting stories about the origin of
this term. It has been claimed that it was first used in the
USENET newsgroup in comp.sys.apollo during a campaign to get
HP/Apollo to fix security problems in its UNIX-{clone}
Aegis/DomainOS (they didn't change a thing). {ITS} fans, on the
other hand, say it was coined years earlier in opposition to the
incredibly paranoid {Multics} people down the hall, for whom
security was everything. In the ITS culture it referred to (1) the
fact that that by the time a tourist figured out how to make
trouble he'd generally gotten over the urge to make it, because he
felt part of the community; and (2) (self-mockingly) the poor
coverage of the documentation and obscurity of many commands. One
instance of *deliberate* security through obscurity is
recorded; the command to allow patching the running ITS system
({altmode} altmode control-R) echoed as $$^D. If you actually
typed alt alt ^D, that set a flag that would prevent patching the
system even if you later got it right.
:space-cadet keyboard: n. A now-legendary device used on MIT LISP
machines, which inspired several still-current jargon terms and
influenced the design of {EMACS}. It was equipped with no
fewer than *seven* shift keys: four keys for {bucky bits}
(`control', `meta', `hyper', and `super') and three like
regular shift keys, called `shift', `top', and `front'. Many
keys had three symbols on them: a letter and a symbol on the top,
and a Greek letter on the front. For example, the `L' key had an
`L' and a two-way arrow on the top, and the Greek letter lambda on
the front. By pressing this key with the right hand while playing
an appropriate `chord' with the left hand on the shift keys, you
can get the following results:
L
lowercase l
shift-L
uppercase L
front-L
lowercase lambda
front-shift-L
uppercase lambda
top-L
two-way arrow
(front and shift are ignored)
And of course each of these might also be typed with any
combination of the control, meta, hyper, and super keys. On this
keyboard, you could type over 8000 different characters! This
allowed the user to type very complicated mathematical text, and
also to have thousands of single-character commands at his
disposal. Many hackers were actually willing to memorize the
command meanings of that many characters if it reduced typing time
(this attitude obviously shaped the interface of EMACS). Other
hackers, however, thought having that many bucky bits was overkill,
and objected that such a keyboard can require three or four hands
to operate. See {bucky bits}, {cokebottle}, {double bucky},
{meta bit}, {quadruple bucky}.
Note: early versions of this entry incorrectly identified the
space-cadet keyboard with the `Knight keyboard'. Though both
were designed by Tom Knight, the latter term was properly applied
only to a keyboard used for ITS on the PDP-10 and modeled
on the Stanford keyboard (as described under {bucky bits}). The
true space-cadet keyboard evolved from the Knight keyboard.
:spool: [from early IBM `Simultaneous Peripheral Operation
On-Line', but this acronym is widely thought to have been contrived
for effect] vt. To send files to some device or program (a
`spooler') that queues them up and does something useful with
them later. Without qualification, the spooler is the `print
spooler' controlling output of jobs to a printer; but the term has
been used in connection with other peripherals (especially plotters
and graphics devices) and occasionally even for input devices. See
also {demon}.
:T: /T/ 1. [from LISP terminology for `true'] Yes. Used in
reply to a question (particularly one asked using the `-P'
convention). In LISP, the constant T means `true', among other
things. Some hackers use `T' and `NIL' instead of `Yes' and `No'
almost reflexively. This sometimes causes misunderstandings. When
a waiter or flight attendant asks whether a hacker wants coffee, he
may well respond `T', meaning that he wants coffee; but of course
he will be brought a cup of tea instead. As it happens, most
hackers (particularly those who frequent Chinese restaurants) like
tea at least as well as coffee --- so it is not that big a problem.
2. See {time T} (also {since time T equals minus infinity}).
3. [techspeak] In transaction-processing circles, an abbreviation
for the noun `transaction'. 4. [Purdue] Alternate spelling of
{tee}. 5. A dialect of {LISP} developed at Yale.
:talk mode: n. A feature supported by UNIX, ITS, and some other
OSes that allows two or more logged-in users to set up a real-time
on-line conversation. It combines the immediacy of talking with
all the precision (and verbosity) that written language entails.
It is difficult to communicate inflection, though conventions have
arisen for some of these (see the section on writing style in the
Prependices for details).
Talk mode has a special set of jargon words, used to save typing,
which are not used orally. Some of these are identical to (and
probably derived from) Morse-code jargon used by ham-radio amateurs
since the 1920s.
BCNU
be seeing you
BTW
by the way
BYE?
are you ready to unlink? (this is the standard way to end a
talk-mode conversation; the other person types `BYE' to
confirm, or else continues the conversation)
CUL
see you later
ENQ?
are you busy? (expects `ACK' or `NAK' in return)
FOO?
are you there? (often used on unexpected links, meaning also
"Sorry if I butted in ..." (linker) or "What's up?" (linkee))
FWIW
for what it's worth
FYI
for your information
FYA
for your amusement
GA
go ahead (used when two people have tried to type
simultaneously; this cedes the right to type to the other)
GRMBL
grumble (expresses disquiet or disagreement)
HELLOP
hello? (an instance of the `-P' convention)
JAM
just a minute (equivalent to `SEC....')
MIN
same as `JAM'
NIL
no (see {NIL})
O
over to you
OO
over and out
/
another form of "over to you" (from x/y as "x over y")
\
lambda (used in discussing LISPy things)
OBTW
oh, by the way
R U THERE?
are you there?
SEC
wait a second (sometimes written `SEC...')
T
yes (see the main entry for {T})
TNX
thanks
TNX 1.0E6
thanks a million (humorous)
TNXE6
another form of "thanks a million"
WRT
with regard to, or with respect to.
WTF
the universal interrogative particle; WTF knows what it means?
WTH
what the hell?
<double newline>
When the typing party has finished, he/she types two newlines
to signal that he/she is done; this leaves a blank line
between `speeches' in the conversation, making it easier to
reread the preceding text.
<name>:
When three or more terminals are linked, it is conventional
for each typist to {prepend} his/her login name or handle and
a colon (or a hyphen) to each line to indicate who is typing
(some conferencing facilities do this automatically). The
login name is often shortened to a unique prefix (possibly a
single letter) during a very long conversation.
/\/\/\
A giggle or chuckle. On a MUD, this usually means `earthquake
fault'.
Most of the above sub-jargon is used at both Stanford and MIT.
Several of these expressions are also common in {email}, esp.
FYI, FYA, BTW, BCNU, WTF, and CUL. A few other abbreviations have
been reported from commercial networks, such as GEnie and
CompuServe, where on-line `live' chat including more than two
people is common and usually involves a more `social' context,
notably the following:
<g>
grin
<gr&d>
grinning, running, and ducking
BBL
be back later
BRB
be right back
HHOJ
ha ha only joking
HHOK
ha ha only kidding
HHOS
{ha ha only serious}
IMHO
in my humble opinion (see {IMHO})
LOL
laughing out loud
NHOH
Never Heard of Him/Her (often used in {initgame})
ROTF
rolling on the floor
ROTFL
rolling on the floor laughing
AFK
away from keyboard
b4
before
CU l8tr
see you later
MORF
male or female?
TTFN
ta-ta for now
TTYL
talk to you later
OIC
oh, I see
rehi
hello again
Most of these are not used at universities or in the UNIX world,
though ROTF and TTFN have gained some currency there and IMHO is
common; conversely, most of the people who know these are
unfamiliar with FOO?, BCNU, HELLOP, {NIL}, and {T}.
The {MUD} community uses a mixture of USENET/Internet emoticons,
a few of the more natural of the old-style talk-mode abbrevs, and
some of the `social' list above; specifically, MUD respondents
report use of BBL, BRB, LOL, b4, BTW, WTF, TTFN, and WTH. The use
of `rehi' is also common; in fact, mudders are fond of re-
compounds and will frequently `rehug' or `rebonk' (see
{bonk/oif}) people. The word `re' by itself is taken as
`regreet'. In general, though, MUDders express a preference for
typing things out in full rather than using abbreviations; this may
be due to the relative youth of the MUD cultures, which tend to
include many touch typists and to assume high-speed links. The
following uses specific to MUDs are reported:
CU l8er
see you later (mutant of `CU l8tr')
FOAD
fuck off and die (use of this is generally OTT)
OTT
over the top (excessive, uncalled for)
ppl
abbrev for "people"
THX
thanks (mutant of `TNX'; clearly this comes in batches of 1138
(the Lucasian K)).
UOK?
are you OK?
Some {BIFF}isms (notably the variant spelling `d00d')
appear to be passing into wider use among some subgroups of
MUDders.
One final note on talk mode style: neophytes, when in talk mode,
often seem to think they must produce letter-perfect prose because
they are typing rather than speaking. This is not the best
approach. It can be very frustrating to wait while your partner
pauses to think of a word, or repeatedly makes the same spelling
error and backs up to fix it. It is usually best just to leave
typographical errors behind and plunge forward, unless severe
confusion may result; in that case it is often fastest just to type
"xxx" and start over from before the mistake.
See also {hakspek}, {emoticon}, {bonk/oif}.
:tiger team: [U.S. military jargon] n. 1. Originally, a team whose
purpose is to penetrate security, and thus test security measures.
These people are paid professionals who do hacker-type tricks,
e.g., leave cardboard signs saying "bomb" in critical defense
installations, hand-lettered notes saying "Your codebooks have
been stolen" (they usually haven't been) inside safes, etc. After
a successful penetration, some high-ranking security type shows up
the next morning for a `security review' and finds the sign,
note, etc., and all hell breaks loose. Serious successes of tiger
teams sometimes lead to early retirement for base commanders and
security officers (see the {patch} entry for an example).
2. Recently, and more generally, any official inspection team or
special {firefighting} group called in to look at a problem.
A subset of tiger teams are professional {cracker}s, testing the
security of military computer installations by attempting remote
attacks via networks or supposedly `secure' comm channels. Some of
their escapades, if declassified, would probably rank among the
greatest hacks of all times. The term has been adopted in
commercial computer-security circles in this more specific sense.
:toolsmith: n. The software equivalent of a tool-and-die
specialist; one who specializes in making the {tool}s with which
other programmers create applications. Many hackers consider this
more fun than applications per se; to understand why, see
{uninteresting}. Jon Bentley, in the "Bumper-Sticker Computer
Science" chapter of his book `More Programming Pearls',
quotes Dick Sites from DEC as saying "I'd rather write programs to
write programs than write programs".
:tree-killer: [Sun] n. 1. A printer. 2. A person who wastes paper.
This should be interpreted in a broad sense; `wasting paper'
includes the production of {spiffy} but {content-free}
documents. Thus, most {suit}s are tree-killers. The negative
loading of this term may reflect the epithet `tree-killer'
applied by Treebeard the Ent to the Orcs in J.R.R. Tolkien's
`Lord of the Rings' (see also {elvish}, {elder
days}).
:vdiff: /vee'dif/ v.,n. Visual diff. The operation of finding
differences between two files by {eyeball search}. The term
`optical diff' has also been reported, and is sometimes more
specifically used for the act of superimposing two nearly identical
printouts on one another and holding them up to a light to spot
differences. Though this method is poor for detecting omissions in
the `rear' file, it can also be used with printouts of graphics, a
claim few if any diff programs can make. See {diff}.
:weenie: n. 1. [on BBSes] Any of a species of luser resembling a
less amusing version of {BIFF} that infests many {BBS}
systems. The typical weenie is a teenage boy with poor social
skills travelling under a grandiose {handle} derived from
fantasy or heavy-metal rock lyrics. Among sysops, `the weenie
problem' refers to the marginally literate and profanity-laden
{flamage} weenies tend to spew all over a newly-discovered BBS.
Compare {spod}, {computer geek}, {terminal junkie}.
2. [Among hackers] When used with a qualifier (for example, as in
{UNIX weenie}, VMS weenie, IBM weenie) this can be either an
insult or a term of praise, depending on context, tone of voice,
and whether or not it is applied by a person who considers him or
herself to be the same sort of weenie. Implies that the weenie has
put a major investment of time, effort, and concentration into the
area indicated; whether this is positive or negative depends on the
hearer's judgment of how the speaker feels about that area. See
also {bigot}. 3. The semicolon character, `;' (ASCII
0111011).
:WYSIWYG: /wiz'ee-wig/ adj. Describes a user interface under
which "What You See Is What You Get", as opposed to one that uses
more-or-less obscure commands that do not result in immediate
visual feedback. True WYSIWYG in environments supporting multiple
fonts or graphics is a a rarely-attained ideal; there are variants
of this term to express real-world manifestations including
WYSIAWYG (What You See Is *Almost* What You Get) and
WYSIMOLWYG (What You See Is More or Less What You Get). All these
can be mildly derogatory, as they are often used to refer to
dumbed-down {user-friendly} interfaces targeted at
non-programmers; a hacker has no fear of obscure commands (compare
{WYSIAYG}). On the other hand, {EMACS} was one of the very first
WYSIWYG editors, replacing (actually, at first overlaying) the
extremely obscure, command-based {TECO}. See also {WIMP
environment}. [Oddly enough, WYSIWYG has already made it into the
OED, in lower case yet. --- ESR]
:xyzzy: /X-Y-Z-Z-Y/, /X-Y-ziz'ee/, /ziz'ee/, or /ik-ziz'ee/
[from the ADVENT game] adj. The {canonical} `magic word'.
This comes from {ADVENT}, in which the idea is to explore an
underground cave with many rooms and to collect the treasures you
find there. If you type `xyzzy' at the appropriate time, you can
move instantly between two otherwise distant points. If,
therefore, you encounter some bit of {magic}, you might remark
on this quite succinctly by saying simply "Xyzzy!" "Ordinarily
you can't look at someone else's screen if he has protected it, but
if you type quadruple-bucky-clear the system will let you do it
anyway." "Xyzzy!" Xyzzy has actually been implemented as an
undocumented no-op command on several OSes; in Data General's
AOS/VS, for example, it would typically respond "Nothing
happens", just as {ADVENT} did if the magic was invoked at the
wrong spot or before a player had performed the action that enabled
the word. In more recent 32-bit versions, by the way, AOS/VS
responds "Twice as much happens". See also {plugh}.
************** Changed entries in 2.9.10 ***************
:Big Gray Wall: n. What faces a {VMS} user searching for
documentation. A full VMS kit comes on a pallet, the documentation
taking up around 15 feet of shelf space before the addition of
layered products such as compilers, databases, multivendor
networking, and programming tools. Recent (since VMS version 5)
DEC documentation comes with gray binders; under VMS version 4 the
binders were orange (`big orange wall'), and under version 3 they
were blue. See {VMS}. Often contracted to `Gray Wall'.
:bit: [from the mainstream meaning and `Binary digIT'] n.
1. [techspeak] The unit of information; the amount of information
obtained by asking a yes-or-no question for which the two outcomes
are equally probable. 2. [techspeak] A computational quantity that
can take on one of two values, such as true and false or 0 and 1.
3. A mental flag: a reminder that something should be done
eventually. "I have a bit set for you." (I haven't seen you for
a while, and I'm supposed to tell or ask you something.) 4. More
generally, a (possibly incorrect) mental state of belief. "I have
a bit set that says that you were the last guy to hack on EMACS."
(Meaning "I think you were the last guy to hack on EMACS, and what
I am about to say is predicated on this, so please stop me if this
isn't true.")
"I just need one bit from you" is a polite way of indicating that
you intend only a short interruption for a question that can
presumably be answered yes or no.
A bit is said to be `set' if its value is true or 1, and
`reset' or `clear' if its value is false or 0. One speaks of
setting and clearing bits. To {toggle} or `invert' a bit is
to change it, either from 0 to 1 or from 1 to 0. See also
{flag}, {trit}, {mode bit}.
The term `bit' first appeared in print in the computer-science
sense in 1949, and seems to have been coined by early computer
scientist John Tukey. Tukey records that it evolved over a lunch
table as a handier alternative to `bigit' or `binit'.
:bogon: /boh'gon/ [by analogy with proton/electron/neutron, but
doubtless reinforced after 1980 by the similarity to Douglas
Adams's `Vogons'; see the Bibliography in {Appendix C}] n.
1. The elementary particle of bogosity (see {quantum
bogodynamics}). For instance, "the Ethernet is emitting bogons
again" means that it is broken or acting in an erratic or bogus
fashion. 2. A query packet sent from a TCP/IP domain resolver to a
root server, having the reply bit set instead of the query bit.
3. Any bogus or incorrectly formed packet sent on a network. 4. By
synecdoche, used to refer to any bogus thing, as in "I'd like to
go to lunch with you but I've got to go to the weekly staff
bogon". 5. A person who is bogus or who says bogus things. This
was historically the original usage, but has been overtaken by its
derivative senses 1--4. See also {bogosity}, {bogus};
compare {psyton}, {fat electrons}, {magic smoke}.
The bogon has become the type case for a whole bestiary of nonce
particle names, including the `clutron' or `cluon' (indivisible
particle of cluefulness, obviously the antiparticle of the bogon)
and the futon (elementary particle of {randomness}). These are
not so much live usages in themselves as examples of a live
meta-usage: that is, it has become a standard joke or linguistic
maneuver to "explain" otherwise mysterious circumstances by inventing
nonce particle names. And these imply nonce particle theories, with
all their dignity or lack thereof (we might note parenthetically that
this is a generalization from "(bogus particle) theories" to "bogus
(particle theories)"!). Perhaps such particles are the modern-day
equivalents of trolls and wood-nymphs as standard starting-points
around which to construct explanatory myths. Of course, playing on
an existing word (as in the `futon') yields additional flavor.
Compare {magic smoke}.
:break: 1. vt. To cause to be {broken} (in any sense). "Your latest
patch to the editor broke the paragraph commands." 2. v. (of a
program) To stop temporarily, so that it may debugged. The place
where it stops is a `breakpoint'. 3. [techspeak] vi. To send an
RS-232 break (two character widths of line high) over a serial comm
line. 4. [UNIX] vi. To strike whatever key currently causes the
tty driver to send SIGINT to the current process. Normally, break
(sense 3), delete or {control-C} does this. 5. `break break'
may be said to interrupt a conversation (this is an example of verb
doubling). This usage comes from radio communications, which in
turn probably came from landline telegraph/teleprinter usage, as
badly abused in the Citizen's Band craze a few years ago.
:casters-up mode: [IBM] n. Yet another synonym for `broken' or
`down'. Usually connotes a major failure. A system (hardware or
software) which is `down' may be already being restarted before
the failure is noticed, whereas one which is `casters up' is
usually a good excuse to take the rest of the day off (as long as
you're not responsible for fixing it).
:chain: 1. [orig. from BASIC's `CHAIN' statement] vi. To hand
off execution to a child or successor without going through the
{OS} command interpreter that invoked it. The state of the
parent program is lost and there is no returning to it. Though
this facility used to be common on memory-limited micros and is
still widely supported for backward compatibility, the jargon usage
is semi-obsolescent; in particular, most UNIX programmers will
think of this as an {exec}. Oppose the more modern
`subshell'. 2. A series of linked data areas within an
operating system or application. `Chain rattling' is the process
of repeatedly running through the linked data areas searching for
one which is of interest to the executing program. The implication
is that there is a very large number of links on the chain.
:COME FROM: n. A semi-mythical language construct dual to the `go
to'; `COME FROM' <label> would cause the referenced label to
act as a sort of trapdoor, so that if the program ever reached it
control would quietly and {automagically} be transferred to the
statement following the `COME FROM'. `COME FROM' was
first proposed in R.L. Clark's `A Linguistic Contribution to
GOTO-less programming', which appeared in a 1973 {Datamation}
issue (and was reprinted in the April 1984 issue of
`Communications of the ACM'). This parodied the then-raging
`structured programming' {holy wars} (see {considered
harmful}). Mythically, some variants are the `assigned COME
FROM' and the `computed COME FROM' (parodying some nasty control
constructs in FORTRAN and some extended BASICs). Of course,
multi-tasking (or non-determinism) could be implemented by having
more than one `COME FROM' statement coming from the same
label.
In some ways the FORTRAN `DO' looks like a `COME FROM'
statement. After the terminating statement number/`CONTINUE'
is reached, control continues at the statement following the DO.
Some generous FORTRANs would allow arbitrary statements (other than
`CONTINUE') for the statement, leading to examples like:
DO 10 I=1,LIMIT
C imagine many lines of code here, leaving the
C original DO statement lost in the spaghetti...
WRITE(6,10) I,FROB(I)
10 FORMAT(1X,I5,G10.4)
in which the trapdoor is just after the statement labeled 10.
(This is particularly surprising because the label doesn't appear
to have anything to do with the flow of control at all!)
While sufficiently astonishing to the unsuspecting reader, this
form of `COME FROM' statement isn't completely general. After
all, control will eventually pass to the following statement. The
implementation of the general form was left to Univac FORTRAN,
ca. 1975 (though a roughly similar feature existed on the IBM 7040
ten years earlier). The statement `AT 100' would perform a
`COME FROM 100'. It was intended strictly as a debugging aid,
with dire consequences promised to anyone so deranged as to use it
in production code. More horrible things had already been
perpetrated in production languages, however; doubters need only
contemplate the `ALTER' verb in {COBOL}.
`COME FROM' was supported under its own name for the first
time 15 years later, in C-INTERCAL (see {INTERCAL},
{retrocomputing}); knowledgeable observers are still reeling
from the shock.
:connector conspiracy: [probably came into prominence with the
appearance of the KL-10 (one model of the {PDP-10}), none of
whose connectors matched anything else] n. The tendency of
manufacturers (or, by extension, programmers or purveyors of
anything) to come up with new products that don't fit together with
the old stuff, thereby making you buy either all new stuff or
expensive interface devices. The KL-10 Massbus connector was
actually *patented* by DEC, which reputedly refused to license
the design and thus effectively locked third parties out of
competition for the lucrative Massbus peripherals market. This
policy is a source of never-ending frustration for the diehards who
maintain older PDP-10 or VAX systems. Their CPUs work fine, but
they are stuck with dying, obsolescent disk and tape drives with
low capacity and high power requirements.
(A closely related phenomenon, with a slightly different intent, is
the habit manufacturers have of inventing new screw heads so that
only Designated Persons, possessing the magic screwdrivers, can
remove covers and make repairs or install options. The Apple
Macintosh takes this one step further, requiring not only a hex
wrench but a specialized case-cracking tool to open the box.)
In these latter days of open-systems computing this term has fallen
somewhat into disuse, to be replaced by the observation that
"Standards are great! There are so *many* of them to choose
from!" Compare {backward combatability}.
:control-Q: vi. "Resume." From the ASCII DC1 or {XON}
character (the pronunciation /X-on/ is therefore also used), used
to undo a previous {control-S}.
:copy protection: n. A class of methods for preventing incompetent
pirates from stealing software and legitimate customers from using
it. Considered silly.
:crash: 1. n. A sudden, usually drastic failure. Most often said
of the {system} (q.v., sense 1), esp. of magnetic disk drives
(the term originally described what happened when the air gap of a
hard disk collapses). "Three {luser}s lost their files in last
night's disk crash." A disk crash that involves the read/write
heads dropping onto the surface of the disks and scraping off the
oxide may also be referred to as a `head crash', whereas the term
`system crash' usually, though not always, implies that the
operating system or other software was at fault. 2. v. To fail
suddenly. "Has the system just crashed?" "Something crashed
the OS!" See {down}. Also used transitively to indicate the
cause of the crash (usually a person or a program, or both).
"Those idiots playing {SPACEWAR} crashed the system." 3. vi.
Sometimes said of people hitting the sack after a long {hacking
run}; see {gronk out}.
:crippleware: n. 1. Software that has some important functionality
deliberately removed, so as to entice potential users to pay for a
working version. 2. [Cambridge] {Guiltware} that exhorts you to
donate to some charity (compare {careware}, {nagware}).
3. Hardware deliberately crippled, which can be upgraded to a more
expensive model by a trivial change (e.g., cutting a jumper).
An excellent example of crippleware (sense 3) is Intel's 486SX
chip, which is a standard 486DX chip with the co-processor dyked
out (in some early versions it was present but disabled). To
upgrade, you buy a complete 486DX chip with *working*
co-processor (its identity thinly veiled by a different pinout) and
plug it into the board's expansion socket. It then disables the
SX, which becomes a fancy power sink. Don't you love Intel?
:cut a tape: vi. To write a software or document distribution on
magnetic tape for shipment. Has nothing to do with physically
cutting the medium! Early versions of this lexicon claimed that
one never analogously speaks of `cutting a disk', but this has
since been reported as live usage. Related slang usages are
mainstream business's `cut a check', the recording industry's
`cut a record', and the military's `cut an order'.
All of these usages reflect physical processes in obsolete
recording and duplication technologies. The first stage in
manufacturing an old-style vinyl record involved cutting grooves in
a stamping die with a precision lathe. More mundanely, the
dominant technology for mass duplication of paper documents in
pre-photocopying days involved "cutting a stencil", punching away
portions of the wax overlay on a silk screen. More directly,
paper tape with holes punched in it was an important early storage
medium.
:deckle: /dek'l/ [from dec- and {nybble}; the original
spelling seems to have been `decle'] n. Two {nickle}s;
10 bits. Reported among developers for Mattel's GI 1600 (the
Intellivision games processor), a chip with 16-bit-wide RAM but
10-bit-wide ROM.
:demo: /de'moh/ [short for `demonstration'] 1. v. To
demonstrate a product or prototype. A far more effective way of
inducing bugs to manifest than any number of {test} runs,
especially when important people are watching. 2. n. The act of
demoing. "I've gotta give a demo of the drool-proof interface;
how does it work again?" 3. n. Esp. as `demo version', can
refer either to an early, barely-functional version of a program
which can be used for demonstration purposes as long as the
operator uses *exactly* the right commands and skirts its numerous
bugs, deficiencies, and unimplemented portions, or to a special
version of a program (frequently with some features crippled) which
is distributed at little or no cost to the user for enticement
purposes.
:deprecated: adj. Said of a program or feature that is considered
obsolescent and in the process of being phased out, usually in
favor of a specified replacement. Deprecated features can,
unfortunately, linger on for many years. This term appears with
distressing frequency in standards documents when the committees
writing the documents realize that large amounts of extant (and
presumably happily working) code depend on the feature(s) that have
passed out of favor. See also {dusty deck}.
:deprecated: adj. Said of a program or feature that is considered
obsolescent and in the process of being phased out, usually in
favor of a specified replacement. Deprecated features can,
unfortunately, linger on for many years. This term appears with
distressing frequency in standards documents when the committees
writing the documents realize that large amounts of extant (and
presumably happily working) code depend on the feature(s) that have
passed out of favor. See also {dusty deck}.
:dickless workstation: n. Extremely pejorative hackerism for
`diskless workstation', a class of botches including the Sun 3/50
and other machines designed exclusively to network with an
expensive central disk server. These combine all the disadvantages
of time-sharing with all the disadvantages of distributed personal
computers; typically, they cannot even {boot} themselves without
help (in the form of some kind of {breath-of-life packet}) from
the server.
:dongle: /dong'gl/ n. 1. A security or {copy protection}
device for commercial microcomputer programs consisting of a
serialized EPROM and some drivers in a D-25 connector shell, which
must be connected to an I/O port of the computer while the program
is run. Programs that use a dongle query the port at startup and
at programmed intervals thereafter, and terminate if it does not
respond with the dongle's programmed validation code. Thus, users
can make as many copies of the program as they want but must pay
for each dongle. The idea was clever, but it was initially a
failure, as users disliked tying up a serial port this way. Most
dongles on the market today (1991) will pass data through the port
and monitor for {magic} codes (and combinations of status lines)
with minimal if any interference with devices further down the line
--- this innovation was necessary to allow daisy-chained dongles
for multiple pieces of software. The devices are still not widely
used, as the industry has moved away from copy-protection schemes
in general. 2. By extension, any physical electronic key or
transferrable ID required for a program to function. Common
variations on this theme have used parallel or even joystick
ports. See {dongle-disk}.
[Note: in early 1992, advertising copy from Rainbow Technologies (a
manufacturer of dongles) included a claim that the word derived from
"Don Gall", allegedly the inventor of the device. The company's
receptionist will cheerfully tell you that the story is a myth
invented for the ad copy. Nevertheless, I expect it to haunt my
life as a lexicographer for at least the next ten years. --- ESR]
:dongle-disk: /don'gl disk/ n. A special floppy disk that is
required in order to perform some task. Some contain special
coding that allows an application to identify it uniquely, others
*are* special code that does something that normally-resident
programs don't or can't. (For example, AT&T's "Unix PC" would
only come up in {root mode} with a special boot disk.) Also
called a `key disk'. See {dongle}.
:dot file: [UNIX] n. A file that is not visible by default to
normal directory-browsing tools (on UNIX, files named with a
leading dot are, by convention, not normally presented in directory
listings). Many programs define one or more dot files in which
startup or configuration information may be optionally recorded; a
user can customize the program's behavior by creating the
appropriate file in the current or home directory. (Therefore, dot
files tend to {creep} --- with every nontrivial application
program defining at least one, a user's home directory can be
filled with scores of dot files, of course without the user's
really being aware of it.) See also {rc file}.
:drunk mouse syndrome: (also `mouse on drugs') n. A malady
exhibited by the mouse pointing device of some computers. The
typical symptom is for the mouse cursor on the screen to move in
random directions and not in sync with the motion of the actual
mouse. Can usually be corrected by unplugging the mouse and
plugging it back again. Another recommended fix for optical mice
is to rotate your mouse pad 90 degrees.
At Xerox PARC in the 1970s, most people kept a can of copier
cleaner (isopropyl alcohol) at their desks. When the steel ball on
the mouse had picked up enough {cruft} to be unreliable, the
mouse was doused in cleaner, which restored it for a while.
However, this operation left a fine residue that accelerated the
accumulation of cruft, so the dousings became more and more
frequent. Finally, the mouse was declared `alcoholic' and sent
to the clinic to be dried out in a CFC ultrasonic bath.
:EMACS: /ee'maks/ [from Editing MACroS] n. The ne plus ultra of
hacker editors, a programmable text editor with an entire LISP
system inside it. It was originally written by Richard Stallman in
{TECO} under {{ITS}} at the MIT AI lab; AI Memo 554 described
it as "an advanced, self-documenting, customizable, extensible
real-time display editor". It has since been reimplemented any
number of times, by various hackers, and versions exist that run
under most major operating systems. Perhaps the most widely used
version, also written by Stallman and now called "{GNU} EMACS"
or {GNUMACS}, runs principally under UNIX. It includes
facilities to run compilation subprocesses and send and receive
mail; many hackers spend up to 80% of their {tube time} inside
it. Other variants include {GOSMACS}, CCA EMACS, UniPress
EMACS, Montgomery EMACS, jove, epsilon, and MicroEMACS.
Some EMACS versions running under window managers iconify as an
overflowing kitchen sink, perhaps to suggest the one feature the
editor does not (yet) include. Indeed, some hackers find EMACS too
{heavyweight} and {baroque} for their taste, and expand the
name as `Escape Meta Alt Control Shift' to spoof its heavy reliance
on keystrokes decorated with {bucky bits}. Other spoof
expansions include `Eight Megabytes And Constantly Swapping',
`Eventually `malloc()'s All Computer Storage', and `EMACS
Makes A Computer Slow' (see {{recursive acronym}}). See
also {vi}.
:emoticon: /ee-moh'ti-kon/ n. An ASCII glyph used to indicate an
emotional state in email or news. Although originally intended
mostly as jokes, emoticons (or some other explicit humor
indication) are virtually required under certain circumstances in
high-volume text-only communication forums such as USENET; the lack
of verbal and visual cues can otherwise cause what were intended to
be humorous, sarcastic, ironic, or otherwise non-100%-serious
comments to be badly misinterpreted (not always even by
{newbie}s), resulting in arguments and {flame war}s.
Hundreds of emoticons have been proposed, but only a few are in
common use. These include:
:-)
`smiley face' (for humor, laughter, friendliness,
occasionally sarcasm)
:-(
`frowney face' (for sadness, anger, or upset)
;-)
`half-smiley' ({ha ha only serious});
also known as `semi-smiley' or `winkey face'.
:-/
`wry face'
(These may become more comprehensible if you tilt your head
sideways, to the left.)
The first two listed are by far the most frequently encountered.
Hyphenless forms of them are common on CompuServe, GEnie, and BIX;
see also {bixie}. On {USENET}, `smiley' is often used as a
generic term synonymous with {emoticon}, as well as specifically
for the happy-face emoticon.
It appears that the emoticon was invented by one Scott Fahlman on
the CMU {bboard} systems around 1980. He later wrote: "I wish I
had saved the original post, or at least recorded the date for
posterity, but I had no idea that I was starting something that
would soon pollute all the world's communication channels." [GLS
confirms that he remembers this original posting].
Note for the {newbie}: Overuse of the smiley is a mark of
loserhood! More than one per paragraph is a fairly sure sign that
you've gone over the line.
:EOF: /E-O-F/ [abbreviation, `End Of File'] n. 1. [techspeak] The
{out-of-band} value returned by C's sequential character-input
functions (and their equivalents in other environments) when end of
file has been reached. This value is -1 under C
libraries postdating V6 UNIX, but was originally 0. 2. [UNIX] The
keyboard character (usually control-D, the ASCII EOT (End Of
Transmission) character) that is mapped by the terminal driver into
an end-of-file condition. 3. Used by extension in non-computer
contexts when a human is doing something that can be modeled as a
sequential read and can't go further. "Yeah, I looked for a list
of 360 mnemonics to post as a joke, but I hit EOF pretty fast; all
the library had was a {JCL} manual." See also
{EOL}.
:feature creature: [poss. fr. slang `creature feature' for a
horror movie] n. 1. One who loves to add features to designs or
programs, perhaps at the expense of coherence, concision, or
{taste}. 2. Alternately, a mythical being that induces
otherwise rational programmers to perpetrate such crocks. See also
{feeping creaturism}, {creeping featurism}.
:fence: n. 1. A sequence of one or more distinguished
({out-of-band}) characters (or other data items), used to
delimit a piece of data intended to be treated as a unit (the
computer-science literature calls this a `sentinel'). The NUL
(ASCII 0000000) character that terminates strings in C is a fence.
Hex FF is also (though slightly less frequently) used this way.
See {zigamorph}. 2. An extra data value inserted in an array or
other data structure in order to allow some normal test on the
array's contents also to function as a termination test. For
example, a highly optimized routine for finding a value in an array
might artificially place a copy of the value to be searched for
after the last slot of the array, thus allowing the main search
loop to search for the value without having to check at each pass
whether the end of the array had been reached. 3. [among users of
optimizing compilers] Any technique, usually exploiting knowledge
about the compiler, that blocks certain optimizations. Used when
explicit mechanisms are not available or are overkill. Typically a
hack: "I call a dummy procedure there to force a flush of the
optimizer's register-coloring info" can be expressed by the
shorter "That's a fence procedure".
:film at 11: [MIT: in parody of TV newscasters] 1. Used in
conversation to announce ordinary events, with a sarcastic
implication that these events are earth-shattering. "{{ITS}}
crashes; film at 11." "Bug found in scheduler; film at 11."
2. Also widely used outside MIT to indicate that additional
information will be available at some future time, *without*
the implication of anything particularly ordinary about the
referenced event. For example, "The mail file server died this
morning; we found garbage all over the root directory. Film at
11." would indicate that a major failure had occurred but that the
people working on it have no additional information about it as
yet; use of the phrase in this way suggests gently that the problem
is liable to be fixed more quickly if the people doing the fixing
can spend time doing the fixing rather than responding to
questions, the answers to which will appear on the normal "11:00
news", if people will just be patient.
:flap: vt. 1. To unload a DECtape (so it goes flap, flap,
flap...). Old-time hackers at MIT tell of the days when the
disk was device 0 and {microtape}s were 1, 2,... and
attempting to flap device 0 would instead start a motor banging
inside a cabinet near the disk. 2. By extension, to unload any
magnetic tape. See also {macrotape}. Modern cartridge tapes no
longer actually flap, but the usage has remained. (The term could
well be re-applied to DEC's TK50 cartridge tape drive, a
spectacularly misengineered contraption which makes a loud flapping
sound, almost like an old reel-type lawnmower, in one of its many
tape-eating failure modes.)
:flat: adj. 1. Lacking any complex internal structure. "That
{bitty box} has only a flat filesystem, not a hierarchical
one." The verb form is {flatten}. 2. Said of a memory
architecture (like that of the VAX or 680x0) that is one big linear
address space (typically with each possible value of a processor
register corresponding to a unique core address), as opposed to a
`segmented' architecture (like that of the 80x86) in which
addresses are composed from a base-register/offset pair (segmented
designs are generally considered {cretinous}).
Note that sense 1 (at least with respect to filesystems) is usually
used pejoratively, while sense 2 is a {Good Thing}.
:funny money: n. 1. Notional `dollar' units of computing time
and/or storage handed to students at the beginning of a computer
course; also called `play money' or `purple money' (in implicit
opposition to real or `green' money). In New Zealand and Germany
the odd usage `paper money' has been recorded; in Germany, the
particularly amusing synonym `transfer ruble' commemmorates the
funny money used for trade between COMECON countries back when the
Soviet Bloc still existed. When your funny money ran out, your
account froze and you needed to go to a professor to get more.
Fortunately, the plunging cost of timesharing cycles has made this
less common. The amounts allocated were almost invariably too
small, even for the non-hackers who wanted to slide by with minimum
work. In extreme cases, the practice led to small-scale black
markets in bootlegged computer accounts. 2. By extension, phantom
money or quantity tickets of any kind used as a resource-allocation
hack within a system. Antonym: `real money'.
:glitch: /glich/ [from German `glitschen' to slip, via Yiddish
`glitshen', to slide or skid] 1. n. A sudden interruption in
electric service, sanity, continuity, or program function.
Sometimes recoverable. An interruption in electric service is
specifically called a `power glitch' (also {power hit}), of
grave concern because it usually crashes all the computers. In
jargon, though, a hacker who got to the middle of a sentence and
then forgot how he or she intended to complete it might say,
"Sorry, I just glitched". 2. vi. To commit a glitch. See
{gritch}. 3. vt. [Stanford] To scroll a display screen, esp.
several lines at a time. {{WAITS}} terminals used to do this in
order to avoid continuous scrolling, which is distracting to the
eye. 4. obs. Same as {magic cookie}, sense 2.
All these uses of `glitch' derive from the specific technical
meaning the term has in the electronic hardware world, where it is
now techspeak. A glitch can occur when the inputs of a circuit
change, and the outputs change to some {random} value for some
very brief time before they settle down to the correct value. If
another circuit inspects the output at just the wrong time, reading
the random value, the results can be very wrong and very hard to
debug (a glitch is one of many causes of electronic {heisenbug}s).
:grep: /grep/ [from the qed/ed editor idiom g/re/p , where
re stands for a regular expression, to Globally search for the
Regular Expression and Print the lines containing matches to it,
via {{UNIX}} `grep(1)'] vt. To rapidly scan a file or set of
files looking for a particular string or pattern (when browsing
through a large set of files, one may speak of `grepping
around'). By extension, to look for something by pattern. "Grep
the bulletin board for the system backup schedule, would you?"
See also {vgrep}.
:hack: 1. n. Originally, a quick job that produces what is needed,
but not well. 2. n. An incredibly good, and perhaps very
time-consuming, piece of work that produces exactly what is needed.
3. vt. To bear emotionally or physically. "I can't hack this
heat!" 4. vt. To work on something (typically a program). In an
immediate sense: "What are you doing?" "I'm hacking TECO."
In a general (time-extended) sense: "What do you do around here?"
"I hack TECO." More generally, "I hack `foo'" is roughly
equivalent to "`foo' is my major interest (or project)". "I
hack solid-state physics." 5. vt. To pull a prank on. See
sense 2 and {hacker} (sense 5). 6. vi. To interact with a
computer in a playful and exploratory rather than goal-directed
way. "Whatcha up to?" "Oh, just hacking." 7. n. Short for
{hacker}. 8. See {nethack}. 9. [MIT] v. To explore
the basements, roof ledges, and steam tunnels of a large,
institutional building, to the dismay of Physical Plant workers and
(since this is usually performed at educational institutions) the
Campus Police. This activity has been found to be eerily similar
to playing adventure games such as Dungeons and Dragons and {Zork}.
See also {vadding}.
Constructions on this term abound. They include `happy hacking'
(a farewell), `how's hacking?' (a friendly greeting among
hackers) and `hack, hack' (a fairly content-free but friendly
comment, often used as a temporary farewell). For more on this
totipotent term see "{The Meaning of `Hack'}". See
also {neat hack}, {real hack}.
:hamster: n. 1. [Fairchild] A particularly slick little piece of
code that does one thing well; a small, self-contained hack. The
image is of a hamster happily spinning its exercise wheel. 2. A
tailless mouse; that is, one with an infrared link to a receiver on
the machine, as opposed to the conventional cable. 3. [UK] Any
item of hardware made by Amstrad, a company famous for its cheap
plastic PC-almost-compatibles.
:heavyweight: adj. High-overhead; {baroque}; code-intensive;
featureful, but costly. Esp. used of communication protocols,
language designs, and any sort of implementation in which maximum
generality and/or ease of implementation has been pushed at the
expense of mundane considerations such as speed, memory
utilization, and startup time. {EMACS} is a heavyweight editor;
{X} is an *extremely* heavyweight window system. This term
isn't pejorative, but one hacker's heavyweight is another's
{elephantine} and a third's {monstrosity}. Oppose
`lightweight'. Usage: now borders on techspeak, especially in
the compound `heavyweight process'.
:hot spot: n. 1. [primarily used by C/UNIX programmers, but
spreading] It is received wisdom that in most programs, less than
10% of the code eats 90% of the execution time; if one were to
graph instruction visits versus code addresses, one would typically
see a few huge spikes amidst a lot of low-level noise. Such spikes
are called `hot spots' and are good candidates for heavy
optimization or {hand-hacking}. The term is especially used of
tight loops and recursions in the code's central algorithm, as
opposed to (say) initial set-up costs or large but infrequent I/O
operations. See {tune}, {bum}, {hand-hacking}. 2. The
active location of a cursor on a bit-map display. "Put the
mouse's hot spot on the `ON' widget and click the left button."
3. A screen region that is sensitive to mouse clicks, which trigger
some action. Hypertext help screens are an example, in which a hot
spot exists in the vicinity of any word for which additional
material is available. 4. In a massively parallel computer with
shared memory, the one location that all 10,000 processors are
trying to read or write at once (perhaps because they are all doing
a {busy-wait} on the same lock).
:infant mortality: n. It is common lore among hackers (and in the
electronics industry at large; this term is possibly techspeak by
now) that the chances of sudden hardware failure drop off
exponentially with a machine's time since power-up (that is, until
the relatively distant time at which enough mechanical wear in I/O
devices and thermal-cycling stress in components has accumulated
for the machine to start going senile). Up to half of all chip and
wire failures happen within a new system's first few weeks; such
failures are often referred to as `infant mortality' problems
(or, occasionally, as `sudden infant death syndrome'). See
{bathtub curve}, {burn-in period}.
:infant mortality: n. It is common lore among hackers (and in the
electronics industry at large; this term is possibly techspeak by
now) that the chances of sudden hardware failure drop off
exponentially with a machine's time since power-up (that is, until
the relatively distant time at which enough mechanical wear in I/O
devices and thermal-cycling stress in components has accumulated
for the machine to start going senile). Up to half of all chip and
wire failures happen within a new system's first few weeks; such
failures are often referred to as `infant mortality' problems
(or, occasionally, as `sudden infant death syndrome'). See
{bathtub curve}, {burn-in period}.
:line starve: [MIT] 1. vi. To feed paper through a printer the
wrong way by one line (most printers can't do this). On a display
terminal, to move the cursor up to the previous line of the screen.
"To print `X squared', you just output `X', line starve, `2', line
feed." (The line starve causes the `2' to appear on the line
above the `X', and the line feed gets back to the original line.)
2. n. A character (or character sequence) that causes a terminal to
perform this action. ASCII 0011010, also called SUB or control-Z,
was one common line-starve character in the days before
microcomputers and the X3.64 terminal standard. Unlike `line
feed', `line starve' is *not* standard {{ASCII}}
terminology. Even among hackers it is considered a bit silly.
3. [proposed] A sequence such as \c (used in System V echo, as well
as {{nroff}} and {{troff}}) that suppresses a {newline} or
other character(s) that would normally be emitted.
:link farm: [UNIX] n. A directory tree that contains many links to
files in a master directory tree of files. Link farms save space
when one is maintaining several nearly identical copies of the same
source tree --- for example, when the only difference is
architecture-dependent object files. "Let's freeze the source and
then rebuild the FROBOZZ-3 and FROBOZZ-4 link farms." Link farms
may also be used to get around restrictions on the number of
`-I' (include-file directory) arguments on older
C preprocessors. However, they can also get completely out of
hand, becoming the filesystem equivalent of {spaghetti
code}.
:logical: [from the technical term `logical device', wherein a
physical device is referred to by an arbitrary `logical' name]
adj. Having the role of. If a person (say, Les Earnest at SAIL)
who had long held a certain post left and were replaced, the
replacement would for a while be known as the `logical' Les
Earnest. (This does not imply any judgment on the replacement.)
Compare {virtual}.
At Stanford, `logical' compass directions denote a coordinate
system in which `logical north' is toward San Francisco,
`logical west' is toward the ocean, etc., even though logical
north varies between physical (true) north near San Francisco and
physical west near San Jose. (The best rule of thumb here is that,
by definition, El Camino Real always runs logical north-and-south.)
In giving directions, one might say: "To get to Rincon Tarasco
restaurant, get onto {El Camino Bignum} going logical north."
Using the word `logical' helps to prevent the recipient from
worrying about that the fact that the sun is setting almost
directly in front of him. The concept is reinforced by North
American highways which are almost, but not quite, consistently
labeled with logical rather than physical directions. A similar
situation exists at MIT: Route 128 (famous for the electronics
industry that has grown up along it) is a 3-quarters circle
surrounding Boston at a radius of 10 miles, terminating near the
coastline at each end. It would be most precise to describe the
two directions along this highway as `clockwise' and
`counterclockwise', but the road signs all say "north" and
"south", respectively. A hacker might describe these directions
as `logical north' and `logical south', to indicate that they
are conventional directions not corresponding to the usual
denotation for those words. (If you went logical south along the
entire length of route 128, you would start out going northwest,
curve around to the south, and finish headed due east, including
one infamous stretch of pavement that is simultaneously route 128
south and Interstate 93 north, and is signed as such!)
:mailing list: n. (often shortened in context to `list') 1. An
{email} address that is an alias (or {macro}, though that word
is never used in this connection) for many other email addresses.
Some mailing lists are simple `reflectors', redirecting mail sent
to them to the list of recipients. Others are filtered by humans
or programs of varying degrees of sophistication; lists filtered by
humans are said to be `moderated'. 2. The people who receive
your email when you send it to such an address.
Mailing lists are one of the primary forms of hacker interaction,
along with {USENET}. They predate USENET, having originated
with the first UUCP and ARPANET connections. They are often used
for private information-sharing on topics that would be too
specialized for or inappropriate to public USENET groups. Though
some of these maintain purely technical content (such as the
Internet Engineering Task Force mailing list), others (like the
`sf-lovers' list maintained for many years by Saul Jaffe) are
recreational, and others are purely social. Perhaps the most
infamous of the social lists was the eccentric bandykin
distribution; its latter-day progeny, lectroids and
tanstaafl, still include a number of the oddest and most
interesting people in hackerdom.
Mailing lists are easy to create and (unlike USENET) don't tie up a
significant amount of machine resources (until they get very large,
at which point they can become interesting torture tests for mail
software). Thus, they are often created temporarily by working
groups, the members of which can then collaborate on a project
without ever needing to meet face-to-face. Much of the material in
this lexicon was criticized and polished on just such a mailing
list (called `jargon-friends'), which included all the co-authors
of Steele-1983.
:MFTL: /M-F-T-L/ [abbreviation: `My Favorite Toy Language'] 1. adj.
Describes a talk on a programming language design that is heavy on
the syntax (with lots of BNF), sometimes even talks about semantics
(e.g., type systems), but rarely, if ever, has any content (see
{content-free}). More broadly applied to talks --- even when
the topic is not a programming language --- in which the subject
matter is gone into in unnecessary and meticulous detail at the
sacrifice of any conceptual content. "Well, it was a typical MFTL
talk". 2. n. Describes a language about which the developers are
passionate (often to the point of prosyletic zeal) but no one else
cares about. Applied to the language by those outside the
originating group. "He cornered me about type resolution in his
MFTL."
The first great goal in the mind of the designer of an MFTL is
usually to write a compiler for it, then bootstrap the design away
from contamination by lesser languages by writing a compiler for it
in itself. Thus, the standard put-down question at an MFTL talk is
"Has it been used for anything besides its own compiler?". On
the other hand, a language that *cannot* be used to write
its own compiler is beneath contempt. See {break-even point}.
(On a related note, Dennis Ritchie once proposed a test of the
generality and utility of a language and the operating system under
which it is compiled: "Is the output of a FORTRAN program compiled
under the language acceptable as input to the FORTRAN compiler?"
In other words, can you write programs thaat write programs? (See
{toolsmith}.) Alarming numbers of (language, OS) pairs fail
this test, particularly when the language is FORTRAN; Ritchie is
quick to point out that {UNIX} (even using FORTRAN) passes it
handily. That the test could ever be failed is only surprising to
those who have had the good fortune to have worked only under
modern systems which lack OS-supported and -imposed "file
types".)
:microfortnight: n. 1/1000000 of the fundamental unit of time in
the Furlong/Firkin/Fortnight system of measurement; 1.2096 sec. (A
furlong is 1/8th of a mile; a firkin is 1/4th of a barrel; the mass
unit of the system is taken to be a firkin of water). The VMS
operating system has a lot of tuning parameters that you can set
with the SYSGEN utility, and one of these is TIMEPROMPTWAIT, the
time the system will wait for an operator to set the correct date
and time at boot if it realizes that the current value is bogus.
This time is specified in microfortnights!
Multiple uses of the millifortnight (about 20 minutes) and
{nanofortnight} have also been reported.
:misfeature: /mis-fee'chr/ or /mis'fee`chr/ n. A feature that
eventually causes lossage, possibly because it is not adequate for
a new situation that has evolved. Since it results from a
deliberate and properly implemented feature, a misfeature is not a
bug. Nor is it a simple unforeseen side effect; the term implies
that the feature in question was carefully planned, but its
long-term consequences were not accurately or adequately predicted
(which is quite different from not having thought ahead at all). A
misfeature can be a particularly stubborn problem to resolve,
because fixing it usually involves a substantial philosophical
change to the structure of the system involved.
Many misfeatures (especially in user-interface design) arise
because the designers/implementors mistake their personal tastes
for laws of nature. Often a former feature becomes a misfeature
because a trade-off was made whose parameters subsequently change
(possibly only in the judgment of the implementors). "Well, yeah,
it is kind of a misfeature that file names are limited to six
characters, but the original implementors wanted to save directory
space and we're stuck with it for now."
:MS-DOS:: /M-S-dos/ [MicroSoft Disk Operating System] n. A
{clone} of {{CP/M}} for the 8088 crufted together in 6 weeks by
hacker Tim Paterson, who is said to have regretted it ever since.
Numerous features, including vaguely UNIX-like but rather broken
support for subdirectories, I/O redirection, and pipelines, were
hacked into 2.0 and subsequent versions; as a result, there are two
or more incompatible versions of many system calls, and MS-DOS
programmers can never agree on basic things like what character to
use as an option switch or whether to be case-sensitive. The
resulting mess is now the highest-unit-volume OS in history. Often
known simply as DOS, which annoys people familiar with other
similarly abbreviated operating systems (the name goes back to the
mid-1960s, when it was attached to IBM's first disk operating
system for the 360). The name further annoys those who know what
the term {operating system} does (or ought to) connote; DOS is
more properly a set of relatively simple interrupt services. Some
people like to pronounce DOS like "dose", as in "I don't work on
dose, man!", or to compare it to a dose of brain-damaging drugs
(a slogan button in wide circulation among hackers exhorts:
"MS-DOS: Just say No!"). See {mess-dos}, {ill-behaved}.
:Nightmare File System: n. Pejorative hackerism for Sun's Network
File System (NFS). In any nontrivial network of Suns where there
is a lot of NFS cross-mounting, when one Sun goes down, the others
often freeze up. Some machine tries to access the down one, and
(getting no response) repeats indefinitely. This causes it to
appear dead to some messages (what is actually happening is that it
is locked up in what should have been a brief excursion to a higher
{spl} level). Then another machine tries to reach either the
down machine or the pseudo-down machine, and itself becomes
pseudo-down. The first machine to discover the down one is now
trying both to access the down one and to respond to the
pseudo-down one, so it is even harder to reach. This situation
snowballs very fast, and soon the entire network of machines is
frozen --- worst of all, the user can't even abort the file access
that started the problem! Many of NFS's problems are excused by
partisans as being an inevitable result of its statelessness, which
is held to be a great feature (critics, of course, call it a great
{misfeature}). (ITS partisans are apt to cite this as proof of
UNIX's alleged bogosity; ITS had a working NFS-like shared file
system with none of these problems in the early 1970s.) See also
{broadcast storm}.
:NIL: /nil/ No. Used in reply to a question, particularly one
asked using the `-P' convention. Most hackers assume this derives
simply from LISP terminology for `false' (see also {T}), but
NIL as a negative reply was well-established among radio hams
decades before the advent of LISP. The historical connection
between early hackerdom and the ham radio world was strong enough
that this may have been an influence.
:one-liner wars: n. A game popular among hackers who code in the
language APL (see {write-only language} and {line noise}).
The objective is to see who can code the most interesting and/or
useful routine in one line of operators chosen from
APL's exceedingly {hairy} primitive set. A similar amusement
was practiced among {TECO} hackers and is now popular among
{Perl} aficionados.
Ken Iverson, the inventor of APL, has been credited with a
one-liner that, given a number N, produces a list of the
prime numbers from 1 to N inclusive. It looks like this:
(2 = 0 +.= T o.| T) / T <- iN
where `o' is the APL null character, the assignment arrow is a
single character, and `i' represents the APL iota.
:patch: 1. n. A temporary addition to a piece of code, usually as a
{quick-and-dirty} remedy to an existing bug or misfeature. A
patch may or may not work, and may or may not eventually be
incorporated permanently into the program. Distinguished from a
{diff} or {mod} by the fact that a patch is generated by more
primitive means than the rest of the program; the classical
examples are instructions modified by using the front panel
switches, and changes made directly to the binary executable of a
program originally written in an {HLL}. Compare {one-line
fix}. 2. vt. To insert a patch into a piece of code. 3. [in the
UNIX world] n. A {diff} (sense 2). 4. A set of modifications to
binaries to be applied by a patching program. IBM operating
systems often receive updates to the operating system in the form
of absolute hexadecimal patches. If you have modified your OS, you
have to disassemble these back to the source. The patches might
later be corrected by other patches on top of them (patches were
said to "grow scar tissue"). The result was often a convoluted
{patch space} and headaches galore. 5. [UNIX] the
`patch(1)' program, written by Larry Wall, which automatically
applies a patch (sense 3) to a set of source code.
There is a classic story of a {tiger team} penetrating a secure
military computer that illustrates the danger inherent in binary
patches (or, indeed, any that you can't --- or don't --- inspect
and examine before installing). They couldn't find any {trap
door}s or any way to penetrate security of IBM's OS, so they made a
site visit to an IBM office (remember, these were official military
types who were purportedly on official business), swiped some IBM
stationery, and created a fake patch. The patch was actually the
trapdoor they needed. The patch was distributed at about the right
time for an IBM patch, had official stationery and all accompanying
documentation, and was dutifully installed. The installation
manager very shortly thereafter learned something about proper
procedures.
:peek: n.,vt. (and {poke}) The commands in most microcomputer
BASICs for directly accessing memory contents at an absolute
address; often extended to mean the corresponding constructs in any
{HLL} (peek reads memory, poke modifies it). Much hacking on
small, non-MMU micros consists of `peek'ing around memory, more
or less at random, to find the location where the system keeps
interesting stuff. Long (and variably accurate) lists of such
addresses for various computers circulate (see {{interrupt list,
the}}). The results of `poke's at these addresses may be highly
useful, mildly amusing, useless but neat, or (most likely) total
{lossage} (see {killer poke}).
Since a {real operating system} provides useful, higher-level
services for the tasks commonly performed with peeks and pokes on
micros, and real languages tend not to encourage low-level memory
groveling, a question like "How do I do a peek in C?" is
diagnostic of the {newbie}. (Of course, OS kernels often have to
do exactly this; a real C hacker would unhesitatingly, if
unportably, assign an absolute address to a pointer variable and
indirect through it.)
:PIP: /pip/ [Peripheral Interchange Program] vt.,obs. To copy;
from the program PIP on CP/M, RSX-11, RSTS/E, TOPS-10, and OS/8
(derived from a utility on the PDP-6) that was used for file
copying (and in OS/8 and RT-11 for just about every other file
operation you might want to do). It is said that when the program
was originated, during the development of the PDP-6 in 1963, it was
called ATLATL (`Anything, Lord, to Anything, Lord'; this played on
the Nahuatl word `atlatl' for a spear-thrower, with connotations
of utility and primitivity that were no doubt quite intentional).
:plokta: /plok't*/ [Acronym for `Press Lots Of Keys To Abort']
v. To press random keys in an attempt to get some response from
the system. One might plokta when the abort procedure for a
program is not known, or when trying to figure out if the system is
just sluggish or really hung. Plokta can also be used while trying
to figure out any unknown key sequence for a particular operation.
Someone going into `plokta mode' usually places both hands flat
on the keyboard and presses down, hoping for some useful
response.
A slightly more directed form of plokta can often be seen in mail
messages or USENET articles from new users --- the text might end
with
q
quit
:q
^C
end
x
exit
ZZ
^D
?
help
as the user vainly tries to find the right exit sequence, with the
incorrect tries piling up at the end of the message....
:postmaster: n. The email contact and maintenance person at a site
connected to the Internet or UUCPNET. Often, but not always, the
same as the {admin}. The Internet standard for electronic mail
({RFC}-822) requires each machine to have a `postmaster' address;
usually it is aliased to this person.
:raw mode: n. A mode that allows a program to transfer bits
directly to or from an I/O device (or, under {bogus} systems
that make a distinction, a disk file) without any processing,
abstraction, or interpretation by the operating system. Compare
{rare mode}, {cooked mode}. This is techspeak under UNIX,
jargon elsewhere.
:README file: n. By convention, the top-level directory of a UNIX
source distribution always contains a file named `README' (or
READ.ME, or rarely ReadMe or some other variant), which is a
hacker's-eye introduction containing a pointer to more detailed
documentation, credits, miscellaneous revision history notes, etc.
In the Mac and PC worlds, software is not usually distributed in
source form and a README is more likely to contain user-oriented
material like last-minute documentation changes, error workarounds,
and restrictions. When asked, hackers invariably relate the README
convention to the famous scene in Lewis Carroll's `Alice's
Adventures In Wonderland' in which Alice confronts magic munchies
labeled "Eat Me" and "Drink Me".
:Red Book: n. 1. Informal name for one of the three standard
references on {{PostScript}} (`PostScript Language Reference
Manual', Adobe Systems (Addison-Wesley, 1985; QA76.73.P67P67; ISBN
0-201-10174-2, or the 1990 second edition ISBN 0-201-18127-4); the
others are known as the {Green Book}, the {Blue Book}, and
the {White Book} (sense 2). 2. Informal name for one of the 3
standard references on Smalltalk (`Smalltalk-80: The
Interactive Programming Environment' by Adele Goldberg
(Addison-Wesley, 1984; QA76.8.S635G638; ISBN 0-201-11372-4); this
too is associated with blue and green books). 3. Any of the
1984 standards issued by the CCITT eighth plenary assembly. These
include, among other things, the X.400 email spec and the Group
1 through 4 fax standards. 4. The new version of the {Green
Book} (sense 4) --- IEEE 1003.1-1990, a.k.a ISO 9945-1 --- is
(because of the color and the fact that it is printed on A4 paper)
known in the U.S.A. as "the Ugly Red Book That Won't Fit On The
Shelf" and in Europe as "the Ugly Red Book That's A Sensible
Size". 5. The NSA `Trusted Network Interpretation' companion
to the {Orange Book}. See also {{book titles}}.
:RFC: /R-F-C/ [Request For Comment] n. One of a long-es-tab-lished
series of numbered Internet standards widely followed by commercial
software and freeware in the Internet and UNIX communities.
Perhaps the single most influential one has been RFC-822 (the
Internet mail-format standard). The RFCs are unusual in that they
are floated by technical experts acting on their own initiative and
reviewed by the Internet at large, rather than formally promulgated
through an institution such as ANSI. For this reason, they remain
known as RFCs even once adopted.
The RFC tradition of pragmatic, experience-driven, after-the-fact
standard writing done by individuals or small working groups has
important advantages over the more formal, committee-driven process
typical of ANSI or ISO. Emblematic of some of these is the
existence of a flourishing tradition of `joke' RFCs; usually at
least one a year is published, usually on April 1st. Well-known
joke RFCs have included 527 ("ARPAWOCKY", R. Merryman, UCSD; 22
June 1973), 748 ("Telnet Randomly-Lose Option", Mark R. Crispin;
1 April 1978), and 1149 ("A Standard for the Transmission of IP
Datagrams on Avian Carriers", D. Waitzman, BBN STC; 1 April 1990).
The first was a Lewis Carroll pastiche; the second a parody of the
TCP-IP documentation style, and the third a deadpan skewering of
standards-document legalese, describing protocols for transmitting
Internet data packets by carrier pigeon.
The RFCs are most remarkable for how well they work --- they manage to
have neither the ambiguities that are usually rife in informal
specifications, nor the committee-perpetrated misfeatures that often
haunt formal standards, and they define a network that has grown to
truly worldwide proportions.
:RTFS: /R-T-F-S/ [UNIX] 1. imp. Acronym for `Read The Fucking
Source'. Stronger form of {RTFM}, used when the problem
at hand is not necessarily obvious and not available from
the manuals --- or the manuals are not yet written and maybe
never will be. For even more tricky situations, see {RTFB}.
2. imp. `Read The Fucking Standard'; this oath can only be used when
the problem area (e.g., a language or operating system interface) has
actually been codified in a ratified standards document. The
existence of these standards documents (and the technically
inappropriate but politically mandated compromises that they
inevitably contain, and the stifling language in which they are
invariably written, and the unbelievably tedious bureaucratic process
by which they are produced) can be unnerving to hackers, who are used
to a certain amount of ambiguity in the specifications of the systems
they use. (Hackers feel that such ambiguities are acceptable as long
as the {Right Thing} to do is obvious to any thinking observer;
sadly, this casual attitude towards specifications becomes unworkable
when a system becomes popular in the {Real World}.) Since a hacker
is likely to feel that a standards document is both unnecessary and
technically deficient, the deprecation inherent in this term may be
directed as much against the standard as against the person who ought
to read it.
:smart terminal: n. 1. A terminal that has enough computing capability
to render graphics or to offload some kind of front-end processing
from the computer it talks to. The development of workstations and
personal computers has made this term and the product it describes
semi-obsolescent, but one may still hear variants of the phrase
`act like a smart terminal' used to describe the behavior of
workstations or PCs with respect to programs that execute almost
entirely out of a remote {server}'s storage, using said devices
as displays. Compare {glass tty}. 2. obs. Any terminal with an
addressable cursor; the opposite of a {glass tty}. Today, a
terminal with merely an addressable cursor, but with none of the
more-powerful features mentioned in sense 1, is called a {dumb
terminal}.
There is a classic quote from Rob Pike (inventor of the {blit}
terminal): "A smart terminal is not a smart*ass* terminal,
but rather a terminal you can educate." This illustrates a common
design problem: The attempt to make peripherals (or anything else)
intelligent sometimes results in finicky, rigid `special
features' that become just so much dead weight if you try to use
the device in any way the designer didn't anticipate. Flexibility
and programmability, on the other hand, are *really* smart.
Compare {hook}.
:sorcerer's apprentice mode: [from Friedrich Schiller's `Der
Zauberlehrling' via the film "Fantasia"] n. A bug in a
protocol where, under some circumstances, the receipt of a message
causes multiple messages to be sent, each of which, when received,
triggers the same bug. Used esp. of such behavior caused by
{bounce message} loops in {email} software. Compare
{broadcast storm}, {network meltdown}, {software
laser}, {ARMM}.
:Stupids: n. Term used by {samurai} for the {suit}s who
employ them; succinctly expresses an attitude at least as common,
though usually better disguised, among other subcultures of
hackers. There may be intended reference here to an SF story
originally published in 1952 but much anthologized since, Mark
Clifton's `Star, Bright'. In it, a super-genius child
classifies humans into a very few `Brights' like herself, a huge
majority of `Stupids', and a minority of `Tweens', the merely
ordinary geniuses.
:syntactic sugar: [coined by Peter Landin] n. Features added to a
language or other formalism to make it `sweeter' for humans,
which do not affect the expressiveness of the formalism (compare
{chrome}). Used esp. when there is an obvious and trivial
translation of the `sugar' feature into other constructs already
present in the notation. C's `a[i]' notation is syntactic
sugar for `*(a + i)'. "Syntactic sugar causes cancer of the
semicolon." --- Alan Perlis.
The variants `syntactic saccharin' and `syntactic syrup' are
also recorded. These denotes something even more gratuitous, in
that syntactic sugar serves a purpose (making something more
acceptable to humans), but syntactic saccharin or syrup serves no
purpose at all. Compare {candygrammar}, {syntactic salt}.
:TELNET: /tel'net/ vt. To communicate with another Internet host
using the {TELNET} protocol (usually using a program of the same
name). TOPS-10 people used the word IMPCOM, since that was the
program name for them. Sometimes abbreviated to TN /T-N/. "I
usually TN over to SAIL just to read the AP News."
:terpri: /ter'pree/ [from LISP 1.5 (and later, MacLISP)] vi. To
output a {newline}. Now rare as jargon, though still used as
techspeak in Common LISP. It is a contraction of `TERminate PRInt
line', named for the fact that, on some early OSes and hardware, no
characters would be printed until a complete line was formed, so
this operation terminated the line and emitted the output.
:thread: n. [USENET, GEnie, CompuServe] Common abbreviation of
`topic thread', a more or less continuous chain of postings on a
single topic. To `follow a thread' is to read a series of USENET
postings sharing a common subject or (more correctly) which are
connected by Reference headers. The better newsreaders present
news in thread order.
:times-or-divided-by: [by analogy with `plus-or-minus'] quant.
Term occasionally used when describing the uncertainty associated
with a scheduling estimate, for either humorous or brutally honest
effect. For a software project, the scheduling uncertainty factor
is usually at least 2.
:tits on a keyboard: n. Small bumps on certain keycaps to keep
touch-typists registered (usually on the `5' of a numeric
keypad, and on the `F' and `J' of a QWERTY keyboard; but
the Mac, perverse as usual, has them on the `D' and `K'
keys).
:TMRC: /tmerk'/ n. The Tech Model Railroad Club at MIT, one of
the wellsprings of hacker culture. The 1959 `Dictionary of
the TMRC Language' compiled by Peter Samson included several terms
that became basics of the hackish vocabulary (see esp. {foo},
{mung}, and {frob}).
By 1962, TMRC's legendary layout was already a marvel of complexity
(and has grown in the thirty years since; all the features
described here are still present). The control system alone
featured about 1200 relays. There were {scram switch}es located
at numerous places around the room that could be thwacked if
something undesirable was about to occur, such as a train going
full-bore at an obstruction. Another feature of the system was a
digital clock on the dispatch board, which was itself something of
a wonder in those bygone days before cheap LEDS and seven-segment
displays (no model railroad can begin to approximate the scale
distances between towns and stations, so model railroad timetables
assume a fast clock so that it seems to take about the right amount
of time for a train to complete its journey). When someone hit a
scram switch the clock stopped and the display was replaced with the
word `FOO'; at TMRC the scram switches are therefore called `foo
switches'.
Steven Levy, in his book `Hackers' (see the Bibliography in
{Appendix C}), gives a stimulating account of those early
years. TMRC's Power and Signals group included most of the early
PDP-1 hackers and the people who later bacame the core of the MIT
AI Lab staff. Thirty years later that connection is still very
much alive, and this lexicon accordingly includes a number of
entries from a recent revision of the TMRC dictionary.
:trap door: alt. `trapdoor' n. 1. Syn. {back door} --- a
{Bad Thing}. 2. [techspeak] A `trap-door function' is one
which is easy to compute but very difficult to compute the inverse
of. Such functions are {Good Thing}s with important
applications in cryptography, specifically in the construction of
public-key cryptosystems.
:tty: /T-T-Y/ [UNIX], /tit'ee/ [ITS, but some UNIX people say it
this way as well; this pronunciation is not considered to have
sexual undertones] n. 1. A terminal of the teletype variety,
characterized by a noisy mechanical printer, a very limited
character set, and poor print quality. Usage: antiquated (like the
TTYs themselves). See also {bit-paired keyboard}.
2. [especially UNIX] Any terminal at all; sometimes used to refer
to the particular terminal controlling a given job. 3. [UNIX] Any
serial port, whether or not the device connected to it is a
terminal; so called because under UNIX such devices have names of
the form tty*. Ambiguity between senses 2 and 3 is common but
seldom bothersome.
:uninteresting: adj. 1. Said of a problem that, although
{nontrivial}, can be solved simply by throwing sufficient
resources at it. 2. Also said of problems for which a solution
would neither advance the state of the art nor be fun to design and
code.
Hackers regard uninteresting problems as intolerable wastes of
time, to be solved (if at all) by lesser mortals. *Real*
hackers (see {toolsmith}) generalize uninteresting problems
enough to make them interesting and solve them --- thus solving the
original problem as a special case (and, it must be admitted,
occasionally turning a molehill into a mountain, or a mountain into
a tectonic plate). See {WOMBAT}, {SMOP}; compare {toy
problem}, oppose {interesting}.
:vadding: /vad'ing/ [from VAD, a permutation of ADV (i.e.,
{ADVENT}), used to avoid a particular {admin}'s continual
search-and-destroy sweeps for the game] n. A leisure-time activity
of certain hackers involving the covert exploration of the
`secret' parts of large buildings --- basements, roofs, freight
elevators, maintenance crawlways, steam tunnels, and the like. A
few go so far as to learn locksmithing in order to synthesize
vadding keys. The verb is `to vad' (compare {phreaking}; see
also {hack}, sense 9). This term dates from the late 1970s,
before which such activity was simply called `hacking'; the older
usage is still prevalent at MIT.
The most extreme and dangerous form of vadding is `elevator
rodeo', a.k.a. `elevator surfing', a sport played by wrasslin'
down a thousand-pound elevator car with a 3-foot piece of
string, and then exploiting this mastery in various stimulating
ways (such as elevator hopping, shaft exploration, rat-racing, and
the ever-popular drop experiments). Kids, don't try this at home!
See also {hobbit} (sense 2).
:VAX: /vaks/ n. 1. [from Virtual Address eXtension] The most
successful minicomputer design in industry history, possibly
excepting its immediate ancestor, the PDP-11. Between its release
in 1978 and its eclipse by {killer micro}s after about 1986, the
VAX was probably the hacker's favorite machine of them all, esp.
after the 1982 release of 4.2 BSD UNIX (see {BSD}). Esp.
noted for its large, assembler-programmer-friendly instruction set
--- an asset that became a liability after the RISC revolution.
2. A major brand of vacuum cleaner in Britain. Cited here because
its alleged sales pitch, "Nothing sucks like a VAX!" became a
sort of battle-cry of RISC partisans. It is even sometimes
claimed that DEC actually entered a cross-licensing deal with the
vacuum-Vax people that allowed them to market VAX computers in the
U.K. in return for not challenging the vacuum cleaner trademark in
the U.S.
It is sometimes claimed that this slogan was *not* actually
used by the Vax vacuum-cleaner people, but was actually that of a
rival brand called Electrolux (as in "Nothing sucks like...").
It's been reliably confirmed that Electrolux actually did use this
slogan in the late 1960s; they're a Belgian company, and it apparently
has become a classic example (used in textbooks) of the perils of
not knowing the local idiom.
It appears, however, that the Vax people thought the slogan a
sufficiently good idea to copy it. Several British hackers report
that their promotions used it in 1986--1987, and we have one
report from a New Zealander that it surfaced there in TV ads for
the product as recently as 1992!
:virtual: [via the technical term `virtual memory', prob. from
the term `virtual image' in optics] adj. 1. Common alternative
to {logical}; often used to refer to the artificial objects
created by a computer system to help the system control access to
shared resources. 2. Simulated; performing the functions of
something that isn't really there. An imaginative child's doll may
be a virtual playmate. Oppose {real}.
:wabbit: /wab'it/ [almost certainly from Elmer Fudd's immortal
line "You wascawwy wabbit!"] n. 1. A legendary early hack
reported on a System/360 at RPI and elsewhere around 1978; this may
have descended (if only by inspiration) from hack called RABBITS
reported from 1969 on a Burroughs 55000 at the University of
Washington Computer Center. The program would make two copies of
itself every time it was run, eventually crashing the system.
2. By extension, any hack that includes infinite self-replication
but is not a {virus} or {worm}. See {fork bomb} and
{rabbit job}, see also {cookie monster}.
:wall: [WPI] interj. 1. An indication of confusion, usually spoken
with a quizzical tone: "Wall??" 2. A request for further
explication. Compare {octal forty}. 3. [UNIX] v. To send a message
to everyone currently logged in, esp. with the wall(8) utility.
It is said that sense 1 came from the idiom `like talking to a
blank wall'. It was originally used in situations where, after you
had carefully answered a question, the questioner stared at you
blankly, clearly having understood nothing that was explained. You
would then throw out a "Hello, wall?" to elicit some sort of
response from the questioner. Later, confused questioners began
voicing "Wall?" themselves.
:White Book: n. 1. Syn. {K&R}. 2. Adobe's fourth book in the
PostScript series, describing the previously-secret format of Type
1 fonts; `Adobe Type 1 Font Format, version 1.1',
(Addison-Wesley, 1990, ISBN 0-201-57044-0). See also {Red Book},
{Green Book}, {Blue Book}.
:Zork: /zork/ n. The second of the great early experiments in computer
fantasy gaming; see {ADVENT}. Originally written on MIT-DM
during the late 1970s, later distributed with BSD UNIX (as a patched,
sourceless RT-11 FORTRAN binary; see {retrocomputing}) and
commercialized as `The Zork Trilogy' by Infocom. The FORTRAN
source was later rewritten for portability and released to USENET
under the name "Dungeon". Both FORTRAN "Dungeon" and
translated C versions are available at many FTP sites.
************** Changed entries in 2.9.11 ***************
:arena: [UNIX] n. The area of memory attached to a process by
`brk(2)' and `sbrk(2)' and used by `malloc(3)' as
dynamic storage. So named from a `malloc: corrupt arena'
message emitted when some early versions detected an impossible
value in the free block list. See {overrun screw}, {aliasing
bug}, {memory leak}, {memory smash}, {smash the
stack}.
:BIFF: /bif/ [USENET] n. The most famous {pseudo}, and the
prototypical {newbie}. Articles from BIFF are characterized by
all uppercase letters sprinkled liberally with bangs, typos,
`cute' misspellings (EVRY BUDY LUVS GOOD OLD BIFF CUZ HE"S A
K00L DOOD AN HE RITES REEL AWESUM THINGZ IN CAPITULL LETTRS LIKE
THIS!!!), use (and often misuse) of fragments of {talk mode}
abbreviations, a long {sig block} (sometimes even a {doubled
sig}), and unbounded naivet'e. BIFF posts articles using his
elder brother's VIC-20. BIFF's location is a mystery, as his
articles appear to come from a variety of sites. However,
{BITNET} seems to be the most frequent origin. The theory that
BIFF is a denizen of BITNET is supported by BIFF's (unfortunately
invalid) electronic mail address: BIFF@BIT.NET.
[1993: Now It Can Be Told! My spies inform me that BIFF was
originally created by Joe Talmadge <jat@cup.hp.com>, also the
author of the infamous and much-plagiarized "Flamer's Bible".
The BIFF filter he wrote was later passed to Richard Sexton, who
posted BIFFisms much more widely. Versions have since been posted
for the amusement of the net at large. --- ESR]
:blit: /blit/ vt. 1. To copy a large array of bits from one part
of a computer's memory to another part, particularly when the
memory is being used to determine what is shown on a display
screen. "The storage allocator picks through the table and copies
the good parts up into high memory, and then blits it all back down
again." See {bitblt}, {BLT}, {dd}, {cat}, {blast},
{snarf}. More generally, to perform some operation (such as
toggling) on a large array of bits while moving them. 2. Sometimes
all-capitalized as `BLIT': an early experimental bit-mapped
terminal designed by Rob Pike at Bell Labs, later commercialized as
the AT&T 5620. (The folk etymology from `Bell Labs Intelligent
Terminal' is incorrect. Its creators liked to claim that "Blit"
stood for the Bacon, Lettuce, and Interactive Tomato.)
:blivet: /bliv'*t/ [allegedly from a World War II military term
meaning "ten pounds of manure in a five-pound bag"] n. 1. An
intractable problem. 2. A crucial piece of hardware that can't be
fixed or replaced if it breaks. 3. A tool that has been hacked
over by so many incompetent programmers that it has become an
unmaintainable tissue of hacks. 4. An out-of-control but
unkillable development effort. 5. An embarrassing bug that pops up
during a customer demo. 6. In the subjargon of computer security
specialists, a denial-of-service attack performed by hogging
limited resources that have no access controls (for example, shared
spool space on a multi-user system).
This term has other meanings in other technical cultures; among
experimental physicists and hardware engineers of various kinds it
seems to mean any random object of unknown purpose (similar to
hackish use of {frob}). It has also been used to describe an
amusing trick-the-eye drawing resembling a three-pronged fork that
appears to depict a three-dimensional object until one realizes
that the parts fit together in an impossible way.
:breath-of-life packet: [XEROX PARC] n. An Ethernet packet that
contains bootstrap (see {boot}) code, periodically sent out
from a working computer to infuse the `breath of life' into any
computer on the network that has happened to crash. Machines
depending on such packets have sufficient hardware or firmware code
to wait for (or request) such a packet during the reboot process.
See also {dickless workstation}.
The `kiss-of-death packet', with a function complementary to that of
a breath-of-life packet, is recommended for dealing with hosts that
consume too many network resources. There is at least one documented
instance of an Internet subnet with limited addres-table slots in a
gateway machine in which kiss-of-death packets were routinely used
to compete for slots, rather like Christmas shoppers competing for
scarce parking spaces.
:Great Renaming: n. The {flag day} in 1985 on which all of the
non-local groups on the {USENET} had their names changed from
the net.- format to the current multiple-hierarchies scheme. Used
esp. in discussing the history of newsgroup names. "The oldest
sources group is comp.sources.misc; before the Great Renaming,
it was net.sources."
:If you want X, you know where to find it.: There is a legend that
Dennis Ritchie, inventor of {C}, once responded to demands for
features resembling those of what at the time was a much more
popular language by observing "If you want PL/I, you know where to
find it." Ever since, this has been hackish standard form for
fending off requests to alter a new design to mimic some older
(and, by implication, inferior and {baroque}) one. The case X =
{Pascal} manifests semi-regularly on USENET's comp.lang.c
newsgroup. Indeed, the case X = X has been reported in
discussions of graphics software (see {X}).
:Imminent Death Of The Net Predicted!: [USENET] prov. Since
{USENET} first got off the ground in 1980--81, it has grown
exponentially, approximately doubling in size every year. On the
other hand, most people feel the {signal-to-noise ratio} of
USENET has dropped steadily. These trends led, as far back as
mid-1983, to predictions of the imminent collapse (or death) of the
net. Ten years and numerous doublings later, enough of these
gloomy prognostications have been confounded that the phrase
"Imminent Death Of The Net Predicted!" has become a running joke,
hauled out any time someone grumbles about the {S/N ratio} or
the huge and steadily increasing volume or the possible loss of a
key node or link, or the potential for lawsuits when ignoramuses
post copyrighted material, etc., etc., etc.
:KIBO: /ki:'boh/ 1. [acronym] Knowledge In, Bullshit Out. A
summary of what happens whenever valid data is passed through an
organization (or person) that deliberately or accidentally
disregards or ignores its significance. Consider, for example,
what an advertising campaign can do with a product's actual
specifications. Compare {GIGO}; see also {SNAFU principle}.
2. James Parry <kibo@world.std.com>, a USENETter infamous for
various surrealist net.pranks and an uncanny, machine-assisted
knack for joining any thread in which his nom de guerre is
mentioned.
:Moof: /moof/ [MAC users] 1. n. A semi-legendary creature, also
called the `dogcow', that lurks in the depths of the Macintosh
Technical Notes Hypercard stack V3.1; specifically, the full story
of the dogcow is told in technical note #31 (the particular Moof
illustrated is properly named `Clarus'). Option-shift-click will
cause it to emit a characteristic `Moof!' or `!fooM' sound.
*Getting* to tech note 31 is the hard part; to discover how to
do that, one must needs examine the stack script with a hackerly
eye. Clue: {rot13} is involved. A dogcow also appears if you
choose `Page Setup...' with a LaserWriter selected and click on
the `Options' button. 2. adj. Used to flag software that's a hack,
something untested and on the edge. On one Apple CD-ROM, certain
folders such as "Tools & Apps (Moof!)" and "Development
Platforms (Moof!)", are so marked to indicate that they contain
software not fully tested or sanctioned by the powers that be.
When you open these folders you cross the boundary into
hackerland.
:plan file: [UNIX] n. On systems that support {finger}, the
`.plan' file in a user's home directory is displayed when the user
is fingered. This feature was originally intended to be used to
keep potential fingerers apprised of one's location and near-future
plans, but has been turned almost universally to humorous and
self-expressive purposes (like a {sig block}). See {Hacking X
for Y}.
A recent innovation in plan files has been the introduction of
"scrolling plan files" which are one-dimensional animations made
using only the printable ASCII character set, carriage return and
line feed, avoiding terminal specific escape sequences, since the
{finger} command will (for security) not pass the escape
character.
Scrolling .plan files have become art forms in miniature, and some
sites have started competitions to find who can create the longest
running, funniest, and most original animations. Various animation
characters include:
Centipede:
mmmmme
Lorry/Truck:
oo-oP
Andalusian Video Snail:
_@/
and a compiler (ASP) is available on USENET for producing them.
:Real Programmer: [indirectly, from the book `Real Men Don't
Eat Quiche'] n. A particular sub-variety of hacker: one possessed
of a flippant attitude toward complexity that is arrogant even when
justified by experience. The archetypal `Real Programmer' likes
to program on the {bare metal} and is very good at same,
remembers the binary opcodes for every machine he has ever
programmed, thinks that HLLs are sissy, and uses a debugger to edit
his code because full-screen editors are for wimps. Real
Programmers aren't satisfied with code that hasn't been {bum}med
into a state of {tense}ness just short of rupture. Real
Programmers never use comments or write documentation: "If it was
hard to write", says the Real Programmer, "it should be hard to
understand." Real Programmers can make machines do things that
were never in their spec sheets; in fact, they are seldom really
happy unless doing so. A Real Programmer's code can awe with its
fiendish brilliance, even as its crockishness appalls. Real
Programmers live on junk food and coffee, hang line-printer art on
their walls, and terrify the crap out of other programmers ---
because someday, somebody else might have to try to understand
their code in order to change it. Their successors generally
consider it a {Good Thing} that there aren't many Real
Programmers around any more. For a famous (and somewhat more
positive) portrait of a Real Programmer, see "{The Story
of Mel, a Real Programmer}" in {Appendix A}. The term itself
was popularized by a 1983 Datamation article "Real
Programmers Don't Use Pascal" by Ed Post, still circulating on
USENET and Internet in on-line form.
:retcon: /ret'kon/ [short for `retroactive continuity', from
the USENET newsgroup rec.arts.comics] 1. n. The common
situation in pulp fiction (esp. comics or soap operas) where a
new story `reveals' things about events in previous stories,
usually leaving the `facts' the same (thus preserving
continuity) while completely changing their interpretation. For
example, revealing that a whole season of "Dallas" was a
dream was a retcon. 2. vt. To write such a story about a character
or fictitious object. "Byrne has retconned Superman's cape so
that it is no longer unbreakable." "Marvelman's old adventures
were retconned into synthetic dreams." "Swamp Thing was
retconned from a transformed person into a sentient vegetable."
"Darth Vader was retconned into Luke Skywalker's father in
"The Empire Strikes Back".
[This is included because it is a good example of hackish
linguistic innovation in a field completely unrelated to computers.
The word `retcon' will probably spread through comics fandom and
lose its association with hackerdom within a couple of years; for
the record, it started here. --- ESR]
[1993 update: some comics fans on the net now claim that retcon was
independently in use in comics fandom before rec.arts.comics.
In lexicography, nothing is ever simple. --- ESR]
:Wizard Book: n. Hal Abelson's, Jerry Sussman's and Julie Sussman's
`Structure and Interpretation of Computer Programs' (MIT
Press, 1984; ISBN 0-262-01077-1), an excellent computer science text
used in introductory courses at MIT. So called because of the
wizard on the jacket. One of the {bible}s of the LISP/Scheme
world. Also, less commonly, known as the {Purple Book}.
:workaround: n. 1. A temporary {kluge} inserted in a system
under development or test in order to avoid the effects of a
{bug} or {misfeature} so that work can continue.
Theoretically, workarounds are always replaced by {fix}es; in
practice, customers often find themselves living with workarounds
in the first couple of releases. "The code died on NUL characters
in the input, so I fixed it to interpret them as spaces."
"That's not a fix, that's a workaround!" 2. A procedure to be
employed by the user in order to do what some currently non-working
feature should do. Hypothetical example: "Using META-F7 {crash}es
the 4.43 build of Weemax, but as a workaround you can type CTRL-R,
then SHIFT-F5, and delete the remaining {cruft} by hand."
:Zork: /zork/ n. The second of the great early experiments in computer
fantasy gaming; see {ADVENT}. Originally written on MIT-DM
during the late 1970s, later distributed with BSD UNIX (as a patched,
sourceless RT-11 FORTRAN binary; see {retrocomputing}) and
commercialized as `The Zork Trilogy' by Infocom. The FORTRAN
source was later rewritten for portability and released to USENET
under the name "Dungeon". Both FORTRAN "Dungeon" and
translated C versions are available at many FTP sites.
************** Changed entries in 2.9.12 ***************
:alt: /awlt/ 1. n. The alt shift key on an IBM PC or {clone}
keyboard; see {bucky bits}, sense 2 (though typical PC usage does
not simply set the 0200 bit). 2. n. The `clover' or `Command'
key on a Macintosh; use of this term usually reveals that the
speaker hacked PCs before coming to the Mac (see also {feature
key}). Some Mac hackers, confusingly, reserve `alt' for the Option
key (and it is so labeled on some Mac II keyboards). 3. n.obs.
[PDP-10; often capitalized to ALT] Alternate name for the ASCII
ESC character (ASCII 0011011), after the keycap labeling on some
older terminals; also `altmode' (/awlt'mohd/). This character
was almost never pronounced `escape' on an ITS system, in
{TECO}, or under TOPS-10 --- always alt, as in "Type alt alt to
end a TECO command" or "alt-U onto the system" (for "log onto
the [ITS] system"). This usage probably arose because alt is more
convenient to say than `escape', especially when followed by
another alt or a character (or another alt *and* a character,
for that matter).
:alt: /awlt/ 1. n. The alt shift key on an IBM PC or {clone}
keyboard; see {bucky bits}, sense 2 (though typical PC usage does
not simply set the 0200 bit). 2. n. The `clover' or `Command'
key on a Macintosh; use of this term usually reveals that the
speaker hacked PCs before coming to the Mac (see also {feature
key}). Some Mac hackers, confusingly, reserve `alt' for the Option
key (and it is so labeled on some Mac II keyboards). 3. n.obs.
[PDP-10; often capitalized to ALT] Alternate name for the ASCII
ESC character (ASCII 0011011), after the keycap labeling on some
older terminals; also `altmode' (/awlt'mohd/). This character
was almost never pronounced `escape' on an ITS system, in
{TECO}, or under TOPS-10 --- always alt, as in "Type alt alt to
end a TECO command" or "alt-U onto the system" (for "log onto
the [ITS] system"). This usage probably arose because alt is more
convenient to say than `escape', especially when followed by
another alt or a character (or another alt *and* a character,
for that matter).
:angle brackets: n. Either of the characters `<' (ASCII
0111100) and `>' (ASCII 0111110) (ASCII less-than or
greater-than signs). Typographers in the {Real World} use angle
brackets which are either taller and slimmer (the ISO `Bra' and
`Ket' characters), or significantly smaller (single or double
guillemets) than the less-than and greater-than signs.
See {broket}, {{ASCII}}.
:app: /ap/ n. Short for `application program', as opposed to a
systems program. Apps are what systems vendors are forever chasing
developers to create for their environments so they can sell more
boxes. Hackers tend not to think of the things they themselves run
as apps; thus, in hacker parlance the term excludes compilers,
program editors, games, and messaging systems, though a user would
consider all those to be apps. (Broadly, an app is often a
self-contained environment for performing some well-defined task
such as `word processing'; hackers tend to prefer more
general-purpose tools.) Oppose {tool}, {operating
system}.
:BASIC: [acronym, from Beginner's All-purpose Symbolic Instruction
Code] n. A programming language, originally designed for
Dartmouth's experimental timesharing system in the early 1960s,
which has since become the leading cause of brain-damage in
proto-hackers. This is another case (like {Pascal}) of the
cascading lossage that happens when a language deliberately
designed as an educational toy gets taken too seriously. A novice
can write short BASIC programs (on the order of 10--20 lines) very
easily; writing anything longer is (a) very painful, and (b)
encourages bad habits that will make it harder to use more powerful
languages well. This wouldn't be so bad if historical accidents
hadn't made BASIC so common on low-end micros. As it is, it ruins
thousands of potential wizards a year.
:Berkeley Quality Software: adj. (often abbreviated `BQS') Term used
in a pejorative sense to refer to software that was apparently
created by rather spaced-out hackers late at night to solve some
unique problem. It usually has nonexistent, incomplete, or
incorrect documentation, has been tested on at least two examples,
and core dumps when anyone else attempts to use it. This term was
frequently applied to early versions of the `dbx(1)' debugger.
See also {Berzerkeley}.
Note to British and Commonwealth readers: that's /berk'lee/, not
/bark'lee/ as in British Received Pronunciation.
:boat anchor: n. 1. Like {doorstop} but more severe; implies
that the offending hardware is irreversibly dead or useless.
"That was a working motherboard once. One lightning strike later,
instant boat anchor!" 2. A person who just takes up space.
3. (affectionate) Obsolete but still working hardware, especially
used of an old S100-bus hobbyist system; originally a term of
annoyance, but became more and more affectionate as the hardware
became more and more obsolete.
:brute force: adj. Describes a primitive programming style, one in
which the programmer relies on the computer's processing power
instead of using his or her own intelligence to simplify the
problem, often ignoring problems of scale and applying naive
methods suited to small problems directly to large ones. The term
can also be used in reference to programming style: brute-force
programs are written in a heavyhanded, tedious way, full of
repetition and devoid of any elegance or useful abstraction (see
also {brute force and ignorance}).
The {canonical} example of a brute-force algorithm is associated
with the `traveling salesman problem' (TSP), a classical
{NP-}hard problem: Suppose a person is in, say, Boston, and
wishes to drive to N other cities. In what order should the
cities be visited in order to minimize the distance travelled? The
brute-force method is to simply generate all possible routes and
compare the distances; while guaranteed to work and simple to
implement, this algorithm is clearly very stupid in that it
considers even obviously absurd routes (like going from Boston to
Houston via San Francisco and New York, in that order). For very
small N it works well, but it rapidly becomes absurdly
inefficient when N increases (for N = 15, there are
already 1,307,674,368,000 possible routes to consider, and for
N = 1000 --- well, see {bignum}). Sometimes,
unfortunately, there is no better general solution than brute
force. See also {NP-}.
A more simple-minded example of brute-force programming is finding
the smallest number in a large list by first using an existing
program to sort the list in ascending order, and then picking the
first number off the front.
Whether brute-force programming should actually be considered
stupid or not depends on the context; if the problem is not
terribly big, the extra CPU time spent on a brute-force solution
may cost less than the programmer time it would take to develop a
more `intelligent' algorithm. Additionally, a more intelligent
algorithm may imply more long-term complexity cost and bug-chasing
than are justified by the speed improvement.
Ken Thompson, co-inventor of UNIX, is reported to have uttered the
epigram "When in doubt, use brute force". He probably intended
this as a {ha ha only serious}, but the original UNIX kernel's
preference for simple, robust, and portable algorithms over
{brittle} `smart' ones does seem to have been a significant
factor in the success of that OS. Like so many other tradeoffs in
software design, the choice between brute force and complex,
finely-tuned cleverness is often a difficult one that requires both
engineering savvy and delicate esthetic judgment.
:bucky bits: /buh'kee bits/ n. 1. obs. The bits produced by the
CONTROL and META shift keys on a SAIL keyboard (octal 200 and 400
respectively), resulting in a 9-bit keyboard character set. The
MIT AI TV (Knight) keyboards extended this with TOP and separate
left and right CONTROL and META keys, resulting in a 12-bit
character set; later, LISP Machines added such keys as SUPER,
HYPER, and GREEK (see {space-cadet keyboard}). 2. By extension,
bits associated with `extra' shift keys on any keyboard, e.g.,
the ALT on an IBM PC or command and option keys on a Macintosh.
It has long been rumored that `bucky bits' were named for
Buckminster Fuller during a period when he was consulting at
Stanford. Actually, bucky bits were invented by Niklaus Wirth when
*he* was at Stanford; he first suggested the idea of an EDIT
key to set the 8th bit of an otherwise 7-bit ASCII character. This
was used in a number of editors written at Stanford or in its
environs (TV-EDIT and NLS being the best-known). Some sources
claim that `Bucky' was Niklaus Wirth's nickname st Stanford,
but Wirth himself does not recall this.
Whatever its origins, the term spread to MIT and CMU early and is
now in general use. See {double bucky}, {quadruple
bucky}.
:burble: [from Lewis Carroll's "Jabberwocky"] v. Like {flame},
but connotes that the source is truly clueless and ineffectual
(mere flamers can be competent). A term of deep contempt.
"There's some guy on the phone burbling about how he got a DISK
FULL error and it's all our comm software's fault." This
is mainstream slang in some parts of England.
:by hand: adv. 1. Said of an operation (especially a repetitive,
trivial, and/or tedious one) that ought to be performed
automatically by the computer, but which a hacker instead has to
step tediously through. "My mailer doesn't have a command to
include the text of the message I'm replying to, so I have to do it
by hand." This does not necessarily mean the speaker has to
retype a copy of the message; it might refer to, say, dropping into
a subshell from the mailer, making a copy of one's mailbox
file, reading that into an editor, locating the top and bottom of
the message in question, deleting the rest of the file, inserting
`>' characters on each line, writing the file, leaving the editor,
returning to the mailer, reading the file in, and later remembering
to delete the file. Compare {eyeball search}. 2. By extension,
writing code which does something in an explicit or low-level way
for which a presupplied library routine ought to have been
available. "This cretinous B-tree library doesn't supply a decent
iterator, so I'm having to walk the trees by hand."
:byte:: /bi:t/ [techspeak] n. A unit of memory or data equal to
the amount used to represent one character; on modern architectures
this is usually 8 bits, but may be 9 on 36-bit machines. Some
older architectures used `byte' for quantities of 6 or 7 bits, and
the PDP-10 supported `bytes' that were actually bitfields of
1 to 36 bits! These usages are now obsolete, and even 9-bit bytes
have become rare in the general trend toward power-of-2 word sizes.
Historical note: The term was coined by Werner Buchholz in 1956
during the early design phase for the IBM Stretch computer;
originally it was described as 1 to 6 bits (typical I/O equipment
of the period used 6-bit chunks of information). The move to an
8-bit byte happened in late 1956, and this size was later adopted
and promulgated as a standard by the System/360. The word was
coined by mutating the word `bite' so it would not be
accidentally misspelled as {bit}. See also {nybble}.
:can: vt. To abort a job on a time-sharing system. Used esp. when the
person doing the deed is an operator, as in "canned from the
{{console}}". Frequently used in an imperative sense, as in "Can
that print job, the LPT just popped a sprocket!" Synonymous with
{gun}. It is said that the ASCII character with mnemonic CAN
(0011000) was used as a kill-job character on some early OSes.
Alternatively, this may derive from mainstream slang `canned' for
being laid off or fired.
:chicken head: [Commodore] n. The Commodore Business Machines logo,
which strongly resembles a poultry part. Rendered in ASCII as
`C='. With the arguable exception of the Amiga (see {amoeba}),
Commodore's machines are notoriously crocky little {bitty box}es
(see also {PETSCII}). Thus, this usage may owe something to
Philip K. Dick's novel `Do Androids Dream of Electric Sheep?'
(the basis for the movie `Blade Runner'; the novel is now sold
under that title), in which a `chickenhead' is a mutant with
below-average intelligence.
:Commonwealth Hackish:: n. Hacker jargon as spoken outside
the U.S., esp. in the British Commonwealth. It is reported that
Commonwealth speakers are more likely to pronounce truncations like
`char' and `soc', etc., as spelled (/char/, /sok/), as
opposed to American /keir/ and /sohsh/. Dots in {newsgroup}
names tend to be pronounced more often (so soc.wibble is /sok dot
wib'l/ rather than /sohsh wib'l/). The prefix {meta} may be
pronounced /mee't*/; similarly, Greek letter beta is usually
/bee't*/, zeta is usually /zee't*/, and so forth. Preferred
{metasyntactic variable}s include {blurgle}, `eek',
`ook', `frodo', and `bilbo'; `wibble',
`wobble', and in emergencies `wubble'; `banana',
`tom', `dick', `harry', `wombat', `frog',
{fish}, and so on and on (see {foo}, sense 4).
Alternatives to verb doubling include suffixes `-o-rama',
`frenzy' (as in feeding frenzy), and `city' (examples: "barf
city!" "hack-o-rama!" "core dump frenzy!"). Finally, note
that the American terms `parens', `brackets', and `braces' for (),
[], and {} are uncommon; Commonwealth hackish prefers
`brackets', `square brackets', and `curly brackets'. Also, the
use of `pling' for {bang} is common outside the United States.
See also {attoparsec}, {calculator}, {chemist},
{console jockey}, {fish}, {go-faster stripes},
{grunge}, {hakspek}, {heavy metal}, {leaky heap},
{lord high fixer}, {loose bytes}, {muddie}, {nadger},
{noddy}, {psychedelicware}, {plingnet}, {raster
blaster}, {RTBM}, {seggie}, {spod}, {sun lounge},
{terminal junkie}, {tick-list features}, {weeble},
{weasel}, {YABA}, and notes or definitions under {Bad
Thing}, {barf}, {bogus}, {bum}, {chase pointers},
{cosmic rays}, {crippleware}, {crunch}, {dodgy},
{gonk}, {hamster}, {hardwarily}, {mess-dos},
{nybble}, {proglet}, {root}, {SEX}, {tweak}, and
{xyzzy}.
:condom: n. 1. The protective plastic bag that accompanies 3.5-inch
microfloppy diskettes. Rarely, also used of (paper) disk
envelopes. Unlike the write protect tab, the condom (when left on)
not only impedes the practice of {SEX} but has also been shown
to have a high failure rate as drive mechanisms attempt to access
the disk --- and can even fatally frustrate insertion. 2. The
protective cladding on a {light pipe}. 3. `keyboard condom':
A flexible, transparent plastic cover for a keyboard, designed to
provide some protection against dust and {programming fluid} without
impeding typing.
:core: n. Main storage or RAM. Dates from the days of
ferrite-core memory; now archaic as techspeak most places outside
IBM, but also still used in the UNIX community and by old-time
hackers or those who would sound like them. Some derived idioms
are quite current; `in core', for example, means `in memory'
(as opposed to `on disk'), and both {core dump} and the `core
image' or `core file' produced by one are terms in favor. Some
varieties of Commonwealth hackish prefer {store}.
:crock: [from the American scatologism crock of shit] n. 1. An
awkward feature or programming technique that ought to be made
cleaner. For example, using small integers to represent error
codes without the program interpreting them to the user (as in, for
example, UNIX `make(1)', which returns code 139 for a process
that dies due to {segfault}). 2. A technique that works
acceptably, but which is quite prone to failure if disturbed in the
least. For example, a too-clever programmer might write an
assembler which mapped instruction mnemonics to numeric opcodes
algorithmically, a trick which depends far too intimately on the
particular bit patterns of the opcodes. (For another example of
programming with a dependence on actual opcode values, see {The
Story of Mel, a Real Programmer} in {Appendix A}.) Many crocks
have a tightly woven, almost completely unmodifiable structure.
See {kluge}, {brittle}. The adjectives `crockish' and
`crocky', and the nouns `crockishness' and `crockitude', are
also used.
:DAU: /dow/ [German Fidonet] n. German acronym for D"ummster
Anzunehmender User (stupidest imaginable user). From the
engin-eering-slang GAU for Gr"osster Anzunehmender Unfall (worst
foreseeable accident, esp. of a LNG tank farm plant or something
with similarly disastrous consequences).See {cretin}, {fool},
{loser} and {weasel}.
:dead code: n. Routines that can never be accessed because all
calls to them have been removed, or code that cannot be reached
because it is guarded by a control structure that provably must
always transfer control somewhere else. The presence of dead code
may reveal either logical errors due to alterations in the program
or significant changes in the assumptions and environment of the
program (see also {software rot}); a good compiler should report
dead code so a maintainer can think about what it means.
(Sometimes it simply means that an *extremely* defensive
programmer has inserted {can't happen} tests which really can't
happen --- yet.) Syn. {grunge}.
:diff: /dif/ n. 1. A change listing, especially giving
differences between (and additions to) source code or documents
(the term is often used in the plural `diffs'). "Send me your
diffs for the Jargon File!" Compare {vdiff}. 2. Specifically,
such a listing produced by the `diff(1)' command, esp. when
used as specification input to the `patch(1)' utility (which
can actually perform the modifications; see {patch}). This is a
common method of distributing patches and source updates in the
UNIX/C world. 3. v. To compare (whether or not by use of automated
tools on machine-readable files); see also {vdiff},
{mod}.
:droid: n. A person (esp. a low-level bureaucrat or
service-bus-i-ness employee) exhibiting most of the following
characteristics: (a) naive trust in the wisdom of the parent
organization or `the system'; (b) a blind-faith propensity to
believe obvious nonsense emitted by authority figures (or
computers!); (c) a rule-governed mentality, one unwilling or unable
to look beyond the `letter of the law' in exceptional
situations; (d), a paralyzing fear of official reprimand or worse
if Procedures are not followed No Matter What; and (e) no interest
no interest in doing anything above or beyond the call of a very
narrowly-interpreted duty, or in particular in fixing that which is
broken; an "It's not my job, man" attitude.
Typical droid positions include supermarket checkout assistant and
bank clerk; the syndrome is also endemic in low-level government
employees. The implication is that the rules and official
procedures constitute software that the droid is executing;
problems arise when the software has not been properly debugged.
The term `droid mentality' is also used to describe the mindset
behind this behavior. Compare {suit}, {marketroid}; see
{-oid}.
:Duff's device: n. The most dramatic use yet seen of {fall
through} in C, invented by Tom Duff when he was at Lucasfilm.
Trying to {bum} all the instructions he could out of an inner
loop that copied data serially onto an output port, he decided to
{unroll} it. He then realized that the unrolled version could
be implemented by *interlacing* the structures of a switch and
a loop:
register n = (count + 7) / 8; /* count > 0 assumed */
switch (count % 8)
{
case 0: do { *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while (--n > 0);
}
Shocking though it appears to all who encounter it for the first
time, the device is actually perfectly valid, legal C. C's default
{fall through} in case statements has long been its most
controversial single feature; Duff observed that "This code forms
some sort of argument in that debate, but I'm not sure whether it's
for or against."
[For maximal obscurity, the outermost pair of braces above could be
actually be removed --- GLS]
:dusty deck: n. Old software (especially applications) which one is
obliged to remain compatible with, or to maintain ({DP} types
call this `legacy code', a term hackers consider smarmy and
excessively reverent). The term implies that the software in
question is a holdover from card-punch days. Used esp. when
referring to old scientific and {number-crunching} software,
much of which was written in FORTRAN and very poorly documented but
is believed to be too expensive to replace. See {fossil};
compare {crawling horror}.
:elegant: [from mathematical usage] adj. Combining simplicity,
power, and a certain ineffable grace of design. Higher praise than
`clever', `winning', or even {cuspy}.
The French aviator, adventurer, and author Antoine de
Saint-Exup'ery, probably best known for his classic children's
book `The Little Prince', was also an aircraft designer. He
gave us perhaps the best definition of engineering elegance when he
said "A designer knows he has achieved perfection not when there
is nothing left to add, but when there is nothing left to take
away."
:elegant: [from mathematical usage] adj. Combining simplicity,
power, and a certain ineffable grace of design. Higher praise than
`clever', `winning', or even {cuspy}.
The French aviator, adventurer, and author Antoine de
Saint-Exup'ery, probably best known for his classic children's
book `The Little Prince', was also an aircraft designer. He
gave us perhaps the best definition of engineering elegance when he
said "A designer knows he has achieved perfection not when there
is nothing left to add, but when there is nothing left to take
away."
:FAQ list: /F-A-Q list/ or /fak list/ [USENET] n. Syn {FAQ},
sense 2.
:Fortrash: /for'trash/ n. Hackerism for the FORTRAN (FORmula
TRANslator) language, referring to its primitive design, gross and
irregular syntax, limited control constructs, and slippery,
exception-filled semantics.
:gobble: vt. 1. To consume, usu. used with `up'. "The output
spy gobbles characters out of a {tty} output buffer." 2. To
obtain, usu. used with `down'. "I guess I'll gobble down a copy
of the documentation tomorrow." See also {snarf}.
:gotcha: n. A {misfeature} of a system, especially a programming
language or environment, that tends to breed bugs or mistakes
because it both enticingly easy to invoke and completely unexpected
and/or unreasonable in its outcome. For example, a classic gotcha
in {C} is the fact that `if (a=b) {code;}' is
syntactically valid and sometimes even correct. It puts the value
of `b' into `a' and then executes `code' if
`a' is non-zero. What the programmer probably meant was
`if (a==b) {code;}', which executes `code' if
`a' and `b' are equal.
:Green's Theorem: [TMRC] prov. For any story, in any group of
people there will be at least one person who has not heard the
story. A refinement of the theorem states that there will be
*exactly* one person (if there were more than one, it wouldn't be
as bad to re-tell the story). [The name of this theorem is a play
on a fundamental theorem in calculus. --- ESR]
:grind: vt. 1. [MIT and Berkeley] To prettify hardcopy of code,
especially LISP code, by reindenting lines, printing keywords and
comments in distinct fonts (if available), etc. This usage was
associated with the MacLISP community and is now rare;
{prettyprint} was and is the generic term for such
operations. 2. [UNIX] To generate the formatted version of a
document from the {{nroff}}, {{troff}}, {{TeX}}, or Scribe
source. 3. To run seemingly interminably, esp. (but not
necessarily) if performing some tedious and inherently useless
task. Similar to {crunch} or {grovel}. Grinding has a
connotation of using a lot of CPU time, but it is possible to grind
a disk, network, etc. See also {hog}. 4. To make the whole
system slow. "Troff really grinds a PDP-11." 5. `grind grind'
excl. Roughly, "Isn't the machine slow today!"
:gubbish: /guhb'*sh/ [a portmanteau of `garbage' and
`rubbish'; may have originated with SF author Philip K. Dick]
n. Garbage; crap; nonsense. "What is all this gubbish?" The
opposite portmanteau `rubbage' is also reported.
:hack value: n. Often adduced as the reason or motivation for
expending effort toward a seemingly useless goal, the point being
that the accomplished goal is a hack. For example, MacLISP had
features for reading and printing Roman numerals, which were
installed purely for hack value. See {display hack} for one
method of computing hack value, but this cannot really be
explained, only experienced. As Louis Armstrong once said when
asked to explain jazz: "Man, if you gotta ask you'll never know."
(Feminists please note Fats Waller's explanation of rhythm: "Lady,
if you got to ask you ain't got it.")
:ice: [coined by USENETter Tom Maddox, popularized by William
Gibson's cyberpunk SF novels: a contrived acronym for `Intrusion
Countermeasure Electronics'] Security software (in Gibson's novels,
software that responds to intrusion by attempting to literally kill
the intruder). Also, `icebreaker': a program designed for
cracking security on a system.
Neither term is in serious use yet as of mid-1993, but many hackers
find the metaphor attractive, and each may develop a denotation in
the future. In the meantime, the speculative usage chould be
confused with `ICE', an acronym for "in-circuit emulator".
:Lasherism: [Harvard] n. A program that solves a standard problem
(such as the Eight Queens puzzle or implementing the {life}
algorithm) in a deliberately nonstandard way. Distinguished from a
{crock} or {kluge} by the fact that the programmer did it on
purpose as a mental exercise. Such constructions are quite popular
in exercises such as the {Obfuscated C contest}, and
occasionally in {retrocomputing}. Lew Lasher was a student at
Harvard around 1980 who became notorious for such behavior.
:magic cookie: [UNIX] n. 1. Something passed between routines or
programs that enables the receiver to perform some operation; a
capability ticket or opaque identifier. Especially used of small
data objects that contain data encoded in a strange or
intrinsically machine-dependent way. E.g., on non-UNIX OSes with a
non-byte-stream model of files, the result of `ftell(3)' may
be a magic cookie rather than a byte offset; it can be passed to
`fseek(3)', but not operated on in any meaningful way. The
phrase `it hands you a magic cookie' means it returns a result
whose contents are not defined but which can be passed back to the
same or some other program later. 2. An in-band code for changing
graphic rendition (e.g., inverse video or underlining) or
performing other control functions (see also {cookie}). Some
older terminals would leave a blank on the screen corresponding to
mode-change magic cookies; this was also called a {glitch}. (or
occasionally a `turd'; compare {mouse droppings}). See also
{cookie}.
:MFTL: /M-F-T-L/ [abbreviation: `My Favorite Toy Language'] 1. adj.
Describes a talk on a programming language design that is heavy on
the syntax (with lots of BNF), sometimes even talks about semantics
(e.g., type systems), but rarely, if ever, has any content (see
{content-free}). More broadly applied to talks --- even when
the topic is not a programming language --- in which the subject
matter is gone into in unnecessary and meticulous detail at the
sacrifice of any conceptual content. "Well, it was a typical MFTL
talk". 2. n. Describes a language about which the developers are
passionate (often to the point of prosyletic zeal) but no one else
cares about. Applied to the language by those outside the
originating group. "He cornered me about type resolution in his
MFTL."
The first great goal in the mind of the designer of an MFTL is
usually to write a compiler for it, then bootstrap the design away
from contamination by lesser languages by writing a compiler for it
in itself. Thus, the standard put-down question at an MFTL talk is
"Has it been used for anything besides its own compiler?". On
the other hand, a language that *cannot* be used to write
its own compiler is beneath contempt. See {break-even point}.
(On a related note, Dennis Ritchie once proposed a test of the
generality and utility of a language and the operating system under
which it is compiled: "Is the output of a FORTRAN program compiled
under the language acceptable as input to the FORTRAN compiler?"
In other words, can you write programs thaat write programs? (See
{toolsmith}.) Alarming numbers of (language, OS) pairs fail
this test, particularly when the language is FORTRAN; Ritchie is
quick to point out that {UNIX} (even using FORTRAN) passes it
handily. That the test could ever be failed is only surprising to
those who have had the good fortune to have worked only under
modern systems which lack OS-supported and -imposed "file
types".)
:moby: /moh'bee/ [MIT: seems to have been in use among model
railroad fans years ago. Derived from Melville's `Moby Dick'
(some say from `Moby Pickle').] 1. adj. Large, immense, complex,
impressive. "A Saturn V rocket is a truly moby frob." "Some
MIT undergrads pulled off a moby hack at the Harvard-Yale game."
(See "{The Meaning of `Hack'}"). 2. n. obs. The
maximum address space of a machine (see below). For a 680[234]0 or
VAX or most modern 32-bit architectures, it is 4,294,967,296 8-bit
bytes (4 gigabytes). 3. A title of address (never of third-person
reference), usually used to show admiration, respect, and/or
friendliness to a competent hacker. "Greetings, moby Dave. How's
that address-book thing for the Mac going?" 4. adj. In
backgammon, doubles on the dice, as in `moby sixes', `moby
ones', etc. Compare this with {bignum} (sense 3): double sixes
are both bignums and moby sixes, but moby ones are not bignums (the
use of `moby' to describe double ones is sarcastic). Standard
emphatic forms: `Moby foo', `moby win', `moby loss'. `Foby
moo': a spoonerism due to Richard Greenblatt. 5. The largest
available unit of something which is available in discrete
increments. Thus, ordering a "moby Coke" at your favorite
fast-food joint is not just a request for a large Coke, it's an
explicit request for the largest size they sell.
This term entered hackerdom with the Fabritek 256K memory added to
the MIT AI PDP-6 machine, which was considered unimaginably huge
when it was installed in the 1960s (at a time when a more typical
memory size for a timesharing system was 72 kilobytes). Thus, a
moby is classically 256K 36-bit words, the size of a PDP-6 or
PDP-10 moby. Back when address registers were narrow the term was
more generally useful, because when a computer had virtual memory
mapping, it might actually have more physical memory attached to it
than any one program could access directly. One could then say
"This computer has 6 mobies" meaning that the ratio of physical
memory to address space is 6, without having to say specifically
how much memory there actually is. That in turn implied that the
computer could timeshare six `full-sized' programs without having
to swap programs between memory and disk.
Nowadays the low cost of processor logic means that address spaces
are usually larger than the most physical memory you can cram onto
a machine, so most systems have much *less* than one theoretical
`native' moby of {core}. Also, more modern memory-management
techniques (esp. paging) make the `moby count' less significant.
However, there is one series of widely-used chips for which the term
could stand to be revived --- the Intel 8088 and 80286 with their
incredibly {brain-damaged} segmented-memory designs. On these, a
`moby' would be the 1-megabyte address span of a segment/offset
pair (by coincidence, a PDP-10 moby was exactly 1 megabyte of 9-bit
bytes).
:moria: /mor'ee-*/ n. Like {nethack} and {rogue}, one of
the large PD Dungeons-and-Dragons-like simulation games, available
for a wide range of machines and operating systems. The name is
from Tolkien's Mines of Moria; compare {elder days}.
{elvish}. The game is extremely addictive and a major consumer
of time better used for hacking.
:neep-neep: /neep neep/ [onomatopoeic, from New York SF fandom]
n. One who is fascinated by computers. More general than
{hacker}, as it need not imply more skill than is required to
boot games on a PC. The derived noun `neeping' oapplies
specifically to the long conversations about computers that tend to
develop in the corners at most SF-convention parties (the term
`neepery' is also in wide use). Fandom has a related proverb to
the effect that "Hacking is a conversational black hole!".
:paper-net: n. Hackish way of referring to the postal service,
analogizing it to a very slow, low-reliability network. USENET
{sig block}s sometimes include a "Paper-Net:" header just
before the sender's postal address; common variants of this are
"Papernet" and "P-Net". Note that the standard {netiquette}
guidelines discourage this practice as a waste of bandwidth, since
netters are quite unlikely to casually use postal addresses.
Compare {voice-net}, {snail-mail}, {P-mail}.
:plonk: [USENET: possibly influenced by British slang `plonk' for
cheap booze, or `plonker' for someone behaving stupidly] The sound
a {newbie} makes as he falls to the bottom of a {kill file}.
Used almost exclusively in the {newsgroup} talk.bizarre,
this term (usually written "*plonk*") is a form of public
ridicule.
:punched card:: alt. `punch card' [techspeak] n.obs. The
signature medium of computing's {Stone Age}, now obsolescent
outside of some IBM shops. The punched card actually predated
computers considerably, originating in 1801 as a control device for
mechanical looms. The version patented by Hollerith and used with
mechanical tabulating machines in the 1890 U.S. Census was a piece
of cardboard about 90 mm by 215 mm. There is a widespread myth
that it was designed to fit in the currency trays used for that
era's larger dollar bills, but recent investigations have falsified
this.
IBM (which originated as a tabulating-machine manufacturer) married
the punched card to computers, encoding binary information as
patterns of small rectangular holes; one character per column,
80 columns per card. Other coding schemes, sizes of card, and
hole shapes were tried at various times.
The 80-column width of most character terminals is a legacy of the
IBM punched card; so is the size of the quick-reference cards
distributed with many varieties of computers even today. See
{chad}, {chad box}, {eighty-column mind}, {green card},
{dusty deck}, {lace card}, {card walloper}.
:scratch monkey: n. As in "Before testing or reconfiguring, always
mount a {scratch monkey}", a proverb used to advise caution
when dealing with irreplaceable data or devices. Used to refer to
any scratch volume hooked to a computer during any risky operation
as a replacement for some precious resource or data that might
otherwise get trashed.
This term preserves the memory of Mabel, the Swimming Wonder
Monkey, star of a biological research program at the University of
Toronto. Mabel was not (so the legend goes) your ordinary monkey;
the university had spent years teaching her how to swim, breathing
through a regulator, in order to study the effects of different gas
mixtures on her physiology. Mabel suffered an untimely demise one
day when a DEC engineer troubleshooting a crash on the program's VAX
inadvertently interfered with some custom hardware that was wired
to Mabel.
It is reported that, after calming down an understandably irate
customer sufficiently to ascertain the facts of the matter, a DEC
troubleshooter called up the {field circus} manager responsible
and asked him sweetly, "Can you swim?"
Not all the consequences to humans were so amusing; the sysop of
the machine in question was nearly thrown in jail at the behest of
certain clueless droids at the local `humane' society. The moral
is clear: When in doubt, always mount a scratch monkey.
[There is a version of this story, complete with reported dialogue
between one of the project people and DEC field service, that has
been circulating on Internet since 1986. It is hilarious and
mythic, but gets some facts wrong. For example, it reports the
machine as a PDP-11 and alleges that Mabel's demise occurred when
DEC {PM}ed the machine. Earlier versions of this entry were
based on that story; this one has been corrected from an interview
with the hapless sysop. --- ESR]
:SIG: /sig/ n. (also common as a prefix in combining forms) The
Association for Computing Machinery traditionally sponsors Special
Interest Groups in various technical areas; well-known ones include
SIGPLAN (the Special Interest Group on Programming Languages),
SIGARCH (the Special Interest Group for Computer Architecture) and
SIGGRAPH (the Special Interest Group for Computer Graphics).
Hackers, not surprisingly, like to overextend this naming
convention to less formal associations like SIGBEER (at ACM
conferences) and SIGFOOD (at University of Illinois).
:snarf: /snarf/ vt. 1. To grab, esp. to grab a large document
or file for the purpose of using it with or without the author's
permission. See also {BLT}. 2. [in the UNIX community] To
fetch a file or set of files across a network. See also
{blast}. This term was mainstream in the late 1960s, meaning
`to eat piggishly'. It may still have this connotation in
context. "He's in the snarfing phase of hacking --- {FTP}ing
megs of stuff a day." 3. To acquire, with little concern for
legal forms or politesse (but not quite by stealing). "They
were giving away samples, so I snarfed a bunch of them."
4. Syn. for {slurp}. "This program starts by snarfing the
entire database into core, then...." 5. [GEnie] To spray
food or {programming fluid}s due to laughing at the wrong
moment. "I was drinking coffee, and when I read your post I
snarfed all over my desk." "If I keep reading this topic, I think
I'll have to snarf-proof my computer with a keyboard {condom}."
[This sense appears to be widespread among mundane teenagers ---
ESR]
:store: [prob. from techspeak `main store'] n. In some
varieties of Commonwealth hackish, the referred synonym for
{core}. Thus, `bringing a program into store' means not that
one is returning shrink-wrapped software but that a program is
being {swap}ped in.
:Sturgeon's Law: prov. "Ninety percent of everything is crap". Derived
from a quote by science fiction author Theodore Sturgeon, who once
said, "Sure, 90% of science fiction is crud. That's because 90% of
everything is crud." Oddly, when Sturgeon's Law is cited, the
final word is almost invariably changed to `crap'. Compare
{Hanlon's Razor}. Though this maxim originated in SF fandom,
most hackers recognize it and are all too aware of its truth.
:UTSL: // [UNIX] n. On-line acronym for `Use the Source, Luke' (a
pun on Obi-Wan Kenobi's "Use the Force, Luke!" in `Star
Wars') --- analogous to {RTFM} but more polite. This is a
common way of suggesting that someone would be best off reading the
source code that supports whatever feature is causing confusion,
rather than making yet another futile pass through the manuals or
broadcasting questions that haven't attracted {wizard}s to
answer them.
Until recently, this objurgation was in theory appropriately
directed only at associates of some outfit with a UNIX source
license; in practice, bootlegs of UNIX source code (made precisely
for reference purposes) were so ubiquitous that one could utter
at almost anyone on the network without concern.
Nowadays, free UNIX clones are becomming common enough that almost
anyone can read source legally. The most widely distributed is
probably Linux, with 386BSD (aka {jolix}) running second. Cheap
commercial UNIXes with source such as BSD/386 and Mach386 are
accelerating this trend.
:VAX: /vaks/ n. 1. [from Virtual Address eXtension] The most
successful minicomputer design in industry history, possibly
excepting its immediate ancestor, the PDP-11. Between its release
in 1978 and its eclipse by {killer micro}s after about 1986, the
VAX was probably the hacker's favorite machine of them all, esp.
after the 1982 release of 4.2 BSD UNIX (see {BSD}). Esp.
noted for its large, assembler-programmer-friendly instruction set
--- an asset that became a liability after the RISC revolution.
2. A major brand of vacuum cleaner in Britain. Cited here because
its alleged sales pitch, "Nothing sucks like a VAX!" became a
sort of battle-cry of RISC partisans. It is even sometimes
claimed that DEC actually entered a cross-licensing deal with the
vacuum-Vax people that allowed them to market VAX computers in the
U.K. in return for not challenging the vacuum cleaner trademark in
the U.S.
It is sometimes claimed that this slogan was *not* actually
used by the Vax vacuum-cleaner people, but was actually that of a
rival brand called Electrolux (as in "Nothing sucks like...").
It's been reliably confirmed that Electrolux actually did use this
slogan in the late 1960s; they're a Belgian company, and it apparently
has become a classic example (used in textbooks) of the perils of
not knowing the local idiom.
It appears, however, that the Vax people thought the slogan a
sufficiently good idea to copy it. Several British hackers report
that their promotions used it in 1986--1987, and we have one
report from a New Zealander that it surfaced there in TV ads for
the product as recently as 1992!
:virtual Friday: n. (also `logical Friday') The last day before
an extended weekend, if that day is not a `real' Friday. For
example, the U.S. holiday Thanksgiving is always on a Thursday.
The next day is often also a holiday or taken as an extra day off,
in which case Wednesday of that week is a virtual Friday (and
Thursday is a virtual Saturday, as is Friday). There are also
`virtual Mondays' that are actually Tuesdays, after the three-day
weekends associated with many national holidays in the U.S.
:wedged: adj. 1. To be stuck, incapable of proceeding without help.
This is different from having crashed. If the system has crashed,
it has become totally non-functioning. If the system is wedged, it
is trying to do something but cannot make progress; it may be
capable of doing a few things, but not be fully operational. For
example, a process may become wedged if it {deadlock}s with
another (but not all instances of wedging are deadlocks). See also
{gronk}, {locked up}, {hosed}. Describes a
{deadlock}ed condition. 2. Often refers to humans suffering
misconceptions. "He's totally wedged --- he's convinced that he
can levitate through meditation." 3. [UNIX] Specifically used to
describe the state of a TTY left in a losing state by abort of a
screen-oriented program or one that has messed with the line
discipline in some obscure way.
There is some dispute over the origin of this term. It is usually
thought to derive from a common description of recto-cranial
inversion; however, it may actually have originated with older
`hot-press' printing technology in which physical type elements
were locked into type frames with wedges driven in by mallets.
Once this had been done, no changes in the typesetting for that
page could be made.
:WIMP environment: n. [acronymic from `Window, Icon, Menu, Pointing
device (or Pull-down menu)'] A graphical-user-interface-based
environment such as {X} or the Macintosh interface, esp. as
described by a hacker who prefers command-line interfaces for their
superior flexibility and extensibility. However, it is used
without negative connotations; one must pay attention to voice tone
and other signals to interpret correctly. See {menuitis},
{user-obsequious}.
:XXX: /X-X-X/ n. A marker that attention is needed.
Commonly used in program comments to indicate areas that are kluged
up or need to be. Some hackers liken `XXX' to the notional
heavy-porn movie rating. Compre {FIXME}.
:You know you've been hacking too long when...: The set-up line
for a genre of one-liners told by hackers about themselves. These
include the following:
* not only do you check your email more often than your paper
mail, but you remember your {network address} faster than your
postal one.
* your {SO} kisses you on the neck and the first thing you
think is "Uh, oh, {priority interrupt}."
* you go to balance your checkbook and discover that you're
doing it in octal.
* your computers have a higher street value than your car.
* in your universe, `round numbers' are powers of 2, not 10.
* more than once, you have woken up recalling a dream in
some programming language.
* you realize you have never seen half of your best friends.
[An early version of this entry said "All but one of these
have been reliably reported as hacker traits (some of them quite
often). Even hackers may have trouble spotting the ringer." The
ringer was balancing one's checkbook in octal, which I made up out
of whole cloth. Although more respondents picked that one
out as fiction than any of the others, I also received multiple
independent reports of its actually happening, including a report
that Grace Hopper used to tell such a story about herself. --- ESR]
:zorch: /zorch/ 1. [TMRC] v. To attack with an inverse heat sink.
2. [TMRC] v. To travel, with v approaching c [that
is, with velocity approaching lightspeed --- ESR]. 3. [MIT] v. To
propel something very quickly. "The new comm software is very
fast; it really zorches files through the network." 4. [MIT] n.
Influence. Brownie points. Good karma. The intangible and fuzzy
currency in which favors are measured. "I'd rather not ask him
for that just yet; I think I've used up my quota of zorch with him
for the week." 5. [MIT] n. Energy, drive, or ability. "I think
I'll {punt} that change for now; I've been up for 30 hours
and I've run out of zorch." 6. [MIT] To flunk an exam or course.
**************** Deleted entries *****************
arc 2.9.12
arc wars 2.9.12
archive 2.9.12
BartleMud 2.9.12
berserking 2.9.12
brand brand brand 2.9.12
card 2.9.12
essentials 2.9.12
fab 2.9.12
fuggly 2.9.12
hack-and-slay 2.9.12
i14y 2.9.12
i18n 2.9.12
K-line 2.9.12
posing 2.9.12
Q-line 2.9.12
reset 2.9.12
salsman 2.9.12 (at salsman's request)
silicon foundry 2.9.12
subshell 2.9.12
tinycrud 2.9.12